web-dev-qa-db-ja.com

jquery delay()関数

私はいくつかのjqueryを使用していて、それに遅延を適用しようとしていますが、動作させることができません。

現在のjqueryは次のとおりです...

image.css({"visibility" : "hidden"}).removeClass("image-background");

そして私はjqueryのウェブサイト(http://api.jquery.com/delay/)に従ってこれを修正して遅延を適用しようとしました...

image.delay(800).css({"visibility" : "hidden"}).removeClass("image-background");

しかし、これは何の違いもないようです。

誰でもこれの問題を見ることができますか?または、どうすれば問題を解決できますか?

前もって感謝します。

19
Phil

delay()関数は、要素でキューに入れられたアクションにのみ適用されます。最も一般的ですが、常にではありませんが、これらはanimate()メソッドによって作成されるアクションです。この場合、setTimeoutを使用して、指定した間隔の後にコードを実行します。

これを試して:

setTimeout(function() {
    image.css({"visibility" : "hidden"}).removeClass("image-background");
}, 800);
41
Rory McCrossan

.delay()はアニメーション専用ではありません。

queue内のすべてのものです。

image.delay(800)
     .queue(function( nxt ) {
         $(this).css({"visibility":"hidden"}).removeClass("image-background");
         nxt(); // continue the queue
     });

下向きの投票者の場合:

HERE'S A DEMO

35
RightSaidFred