2012-11-27 21 views
5

(「遅い」)と。しかし、hide( "slow")を使用しようとすると、divが閉じられたときにdivTitleとdivArrowが表示されません。同じ問題がhide(1000)を使用しています。非表示()非表示に対それが正常に動作します。このコードで、私はdiv要素を非表示にする必要が

「スロー」パラメータを使用して非表示にするかどうかには違いがありますか?

おかげで、 アンドレア

答えて

3

$(element).hide()は即座に要素を非表示にします。この場合、$(element).hide('slow')は消滅を(ゆっくりと)アニメートします。

はそれは(私はよく分からないが)あなたは、アニメーションが終了した後ものをしたいのように見えます。その場合は次のようにしてください:

var that = this; // here to preserve scope for the block below 
$('div[name='+idObj+']').children().hide('slow', function() { 

    // This stuff happens after the hide animation is done. 
    $('div[name='+idObj+']').attr('isdisplay','no'); 

    divTitle.show(); 
    divArrow.show(); 
    $(that).children().first().attr('src',prefixImg+valS); // <= note "that" instead of "this" 

}); 
+1

ありがとうエヴァン!それは何かの理由で、「遅い」隠蔽の後、オブジェクトのスコープが失われたという問題でした。これは私の問題を解決する! –

1

は、jQueryのドキュメントによると

文字列 '速い' と '遅い' は、それぞれ、 200および600ミリ秒の継続時間を示すために供給することができます。また、ミリ秒単位の期間がそれに供給することができる

..

6

公式サイトから

マッチした要素はなしアニメーションで、すぐに表示されなくなります。これは、displayプロパティの値がjQueryのデータキャッシュに保存され、後で表示を初期値に戻すことができることを除けば、.css( 'display'、 'none')を呼び出すのとほぼ同じです。ある要素の表示値がインラインの場合、その要素は非表示になり、表示され、インラインで表示されます。

時間を指定すると、.hide()がアニメーションメソッドになります。 .hide()メソッドは、一致した要素の幅、高さ、不透明度を同時にアニメーション化します。これらのプロパティが0になると、要素のページレイアウトが影響を受けないように、表示スタイルプロパティはnoneに設定されます。

したがって、hideが遅延なく使用されている場合、アニメーションなしで非表示になります(例:poof)。

時間とともに使用されるとアニメーション化されるため、時間が経つにつれて消滅します。

あなたの問題のために、対応するhtmlコードなしで判断するのは難しいです。

関連する問題