2011-12-15 13 views
0

これは間違っている場所を教えてもらえますか?クラスの可視性を切り替えようとしていますが、可視性を復元できません。それを非表示にすると罰金です:Jqueryの可視性トグルが機能しない

if($(".ball").is(':visible') == true) { 
    $(".ball").css({ 'visibility': 'hidden'}); 
} else { 
    $(".ball").css({ 'visibility': 'visible'}); 
} 

私は維持するが、見えない、フォーマットと意志の混乱を切り替えるクラスが必要として、私はトグルを使用することはできません。

助けていただければ幸いです。あなたはballクラスを持つすべての要素を選択し、それが隠されている場所を決定するか、またはすることはできません

答えて

2

を非表示になります。

$(".ball").each(function() { 
    var ball = $(this); 
    if (ball.css("visibility") === "hidden") 
     ball.css("visibility", "visible"); 
    else 
     ball.css("visibility", "hidden"); 
}); 
+0

私のために働いていません – mao

+0

ここにそのコードの働きの例があります。 http://jsfiddle.net/CWg5B/ –

+0

申し訳ありませんが、私の悪い、それは働いていた。ありがとうございました。 – mao

0
if($(".ball").is(':visible') == true) { 
    $(".ball").hide(); 
}; 

はあなたが後にしているではないかもしれませんが、それは「ボール」クラスを持つ要素に

+0

それはトグルと同じことです。アフリカンは、私が必要とする可視性を隠す代わりに、効果的に0サイズにします。しかし、ありがとう。 – mao

6

セレクタ「可視」とのみ表示

と、 可視で動作しません視認性

要素:隠された又は不透明度:0は、それらがまだレイアウトのスペースを消費するので、可視であると考えられている。ここで

0は、jQueryのドキュメントhttp://api.jquery.com/visible-selector/の断片です。要素を隠すアニメーションでは、要素はアニメーションの最後まで表示されると見なされます。要素を表示するアニメーションでは、要素はアニメーションの最初に表示されていると見なされます。

これを試してみてください:

ここ
if($(".ball").css("visibility") == "visible") { 
    $(".ball").css({ 'visibility': 'hidden'}); 
} else { 
    $(".ball").css({ 'visibility': 'visible'}); 
} 

も切り替わります例http://jsfiddle.net/eGVWM/2/

+0

ああ、説明してくれてありがとう – mao

+0

+1良い説明。 @mao:また、選択した '$(" ball ")'を3回選択するのではなく、再利用する必要があります。何かのように: 'var ball = $("。ball "); if(ball.css( "visibility")== "visible"){... ' –

1

$(".ball").toggle();ですが、display:noneを使用して動作します。

関連する問題