2011-12-20 5 views
0
if (p5goback = true) 
    { 
     $("#p5-6").fadeOut("slow"); 
     p5goback = false; 
    } 
else  
    { 
     $("#p5-6").fadeIn("slow"); 
     var p5goback = true; 
    } 

上記のコードを使用すると、divを非表示にしたり非表示にすることができます。jQuery 1つのボタンでdivを非表示にする/解除する

上記のコードは動作していないようですが、なぜですか?

私はHTMLが必要だとは思わないが、jsfiddleにコメントを残しておきたいと思っている。

お気軽に

答えて

2

条件は割り当てられていて、確認されていません。比較のために==を使用します。

if(p5goback == true) { ... } 

p5gobackがブール値であるので、あなたは完全に== true一部を残すことができます:

if(p5goback) { ... } 

をあなたはいつもあなたは、それが何であったかの逆数にp5gobackを設定しているので、

$('#p5-6').fadeToggle('slow'); 
p5goback = !p5goback; 

の場合は予期しない動作が発生する可能性があることに注意してください(または#p5-6の可視性)は、何かによって変更されました。else状態は常にこれらの2つの変数の間一貫していることを確認するためにのみ#p5-6視界またはp5gobackブールの値が変化する)

任意のシナリオがある場合、あなたはこのような何かを書くことができますが、可読性が低下しますそれから、あなただけの条件を使用した方が良いかもしれません:

$.fn[ p5goback ? 'fadeOut' : 'fadeIn' ].call($('#p5-6'), 'slow'); 
p5goback = !p5goback; 

上記のコードは、その後p5gobackの値に応じて、$.fn.fadeOutまたは$.fn.fadeInを呼び出し、 p5gobackを現在の値の逆ブール値に設定します。

0

あなたが使用したいbutton.onclickメソッドの中にいるとします。代わりに、フェードイン/フェードアウトの あなたは

$("#p5-6").toggle("slow");

を使用することができ、また、あなたのif文訂正する必要があります。if (p5goback == true)

0

あなたが.fadeToggle()機能を使用する場合、より美しくなります。)

$("#p5-6").fadeToggle("slow"); 
関連する問題