2017-07-10 19 views
0

このトピックには多くの投稿がありますが、問題を直接解決するものはありません。ここに私の現在のセットアップがあります:表示/非表示を切り替える(jQuery)

IDは#ptwesvです。

と表示したいコンテンツを含む別のdivは、ID #ptwestで非表示にします。

私が使用しているjQueryのはこれです:

<script> 
jQuery("#ptwesv").click(function(){ 
    jQuery("#ptwest").show(); 
}); 
jQuery("#ptwesv").click(function(){ 
    jQuery("#ptwest").hide(); 
}); 
</script> 

これは、クリックに正しく#ptwestコンテナを隠しているが、私は再びトリガ素子(#ptwesv)をクリックすると、その後conatinerは表示されません。これは、要素が非表示になってから再度トリガーをクリックすると、アクションが相互に作用するためです。

参考文献としてthis W3のexmapleを使用していますが、表示/非表示のトリガー要素が異なることがわかりました。

単一のdivから要素の表示/非表示をトリガすることは可能ですか?これをどのように動作させることができますか?

+1

'jQueryの( "#のptwest")。2番目に設定しているときあなたはあなたの最初のクリックイベントを上書きしている – tymeJV

+0

')(トグルします。これまでに与えられたすべての答えが機能します。 – vi5ion

答えて

2
jQuery("#ptwesv").click(function(){ 
    jQuery("#ptwest").toggle(); 
}); 

です。要素をトグルします。したがって、それが表示されている場合、それは隠れ、他の方向に回ります。

現時点では、要素は常に2回同じクリック要素のために非表示になります。

3

Idはドキュメント全体で一意であるためです。トグル()メソッドは、選択された要素のために(非表示に切り替えます)とshow()toggle()

jQuery("#ptwesv").click(function(){ 
    jQuery("#ptwest").toggle(); 
}); 
+0

Ahhhh私の答えは同じで、1分前です。:( –

+0

私は.toggle()を使用しません。ユーザーが同じ要素をすばやくクリックすると、jQueryの切り替えが失敗し、結果が混ざります。 .show()と.hide()を要素の現在の状態を格納するブール値と組み合わせて使用​​します(リスナーが呼び出されたときに表示されるか隠されている場合) – Danmoreng

+0

@RickBronger ahhhあなたのやり方で :) –

0

と試みます。

このメソッドは、選択した要素の可視性をチェックします。要素が隠されている場合、show()が実行されます。要素が表示されている場合、hide()が実行されます。これにより、トグルエフェクトが作成されます。

$("#ptwesv").click(function(){ 
     $("#ptwest").toggle(); 
    }); 
関連する問題