2011-10-28 32 views
1

私は、1500msの遅延後にフェードアウトするように設定された要素を持っています。すなわち:ような何か:jQueryのdelay()d要素の遅延を延長する

$("<div>My Element</div>").appendTo("body").delay(1500).fadeOut(400); 

は、要素のフェードアウトがまだ保留されている間、この遅延期間を延長するためのjQueryでの方法はありますか?

答えて

1

http://api.jquery.com/delay/

から.delay()メソッドは、キューに入れられたjQueryの 効果の間の遅延のために最善です。 制限があるため、たとえば、遅延をキャンセルする方法はありません。 delay()は、JavaScriptのネイティブsetTimeout関数の代わりに使用されます。 は、特定の使用例の方が適切な場合があります。

だから、私はJavaScriptのsettimeout()でしかできないと思います。

私が間違っている場合は私を修正してください。 :)

p.s.追加するだけで、.clearQueue()を使用して遅延アニメーションを取り消すことができます。

0

.delay()はおそらくsetTimeot()またはsetInterval()を使用します。私は、あなたが取得しようとしているどのような影響を与えるのかわからないんだけど、あなたはタイマーをリセット(またはそれを再起動)したい場合は、このような何か行うことができます。「divの外にhttp://jsfiddle.net/rkw79/4AevQ/

var t; 
$('div').click(function() { 
    clearTimeout(t); 
    t= setTimeout("$('div').fadeOut(400);", 1500); 
}); 

$('div').trigger('click'); 

フェードの上記のコードを'ユーザーがそれをクリックしない限り。

1
setTimeout() { 
    function() { 
     $("<div>My Element</div>").appendTo("body").fadeOut(400); 
    }, 1500 
}