2011-12-07 7 views
0

次のコードを使用して、Javaスクリプトの実行を3秒間待っています。次のように同じことを行うための任意の簡単な方法がある場合はsetTimeoutを実行する簡単な方法はありますか?

var test = setTimeout(function(){ 
    alert("Test"); 
},3000); 

私の質問は...、私は事前

で$ .idle

$.idle(3000); 
alert("Test"); 

感謝を使用して、いくつかのブログに遭遇してきた です

+1

可能重複(http://stackoverflow.com/questions/4437600/sleep-in- jquery)。 JavaScriptでスレッドを一時停止することはできないので、答えはほとんど「いいえ」です。 –

+0

それでは、私はsetTimeoutのみを使うべきです...ありがとう –

答えて

1

私は、私が著者に完全なクレジットを与えることができるように、これを引っ張ったウェブサイトを覚えていればいいと思いますが、あなたが探しているかもしれないものは、jQueryのDeferredsをうまく使うことです。ここで

は、あなたが(アンディ・Eが述べたように "、それがブロックされていないことをCEPT。)

$.wait = function(time) { 
    return $.Deferred(function(dfd) { 
     // resolve() calls all of the registered 
     // 'done' callbacks (registered using then()) 
     setTimeout(dfd.resolve, time); 
    }).promise(); 
}; 
示したものに非常に類似したメカニズムを呼び出して、あなたが機能的、清潔を持っているように、Deferredの作り方を活用機能です

さて、Deferredの作り方のおかげで、あなたはアプリのようにあなたの中にタイムアウトを書くことができます[?jQueryのでスリープ]の

$.wait(5000).then(function() { 
    alert("Hello from the future!"); 
}); 
+0

これは、 inside ... then function ...これはうまくいくでしょう。 –

2

遅延の後ですか?これはネイティブのJSがあるためのsetTimeoutに

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

+0

'delay()'は、特にjQueryアニメーションを連鎖させるためのものです。 'alert()'を 'delay()'にタックすることはできません。単に 'setTimeout()'を使うよりも複雑です。あなたがリンクしているドキュメントでも、「JavaScriptのネイティブsetTimeout *に代わるものではない」と指摘しています。 –

+0

私はdelay()も調べました...しかし、setTimeoutは1つです...ありがとう... –

1

()の呼び出しは、早くあなたが得ることができるようです。

+0

さて、setTimeoutだけにしましょう...ありがとうございました –

関連する問題