2011-01-19 21 views
124

私はこれ、あなたはプレーンなJavaScriptを使用することができます5秒間に関数呼び出しをどのように遅延させるのですか?

+3

は、あなたがそれを自動的に呼び出しの間の5秒の遅延で呼ばれるようにしたいですかまたはこれが応答で呼び出されますか最後の呼び出しから少なくとも5秒待ってから再度実行したいのですか?後者の場合、ユーザーはイベントをキューに入れることができますか、または5秒が経過していなければ入力を無視する必要がありますか? – Phrogz

答えて

269

... jQueryのdelay()は、このために働かないようにそれはそうどのように私はjQueryのでこれを行うのですか... ... widget.Rotator.rotate()が呼び出しの間に5秒を遅らせることにしたいです5秒後に、一度your_func呼び出します。

setTimeout(function() { your_func(); }, 5000); 

あなたの関数はパラメータはありませんし、あなたが直接setTimeout(func, 5000)

呼び出すことができます明示的な受信機は、私がかつて使用していたプラグインも存在しない場合。それはoneTimeeveryTimeの方法を持っています。

+24

関数のパラメータがない場合、 'function'をラップする必要はありません - これはうまくいくでしょう:' setTimeout(your_func、5000); ' – Oded

+1

@Oded' Rotator.rotate() 'は受信機を 'Rotator'に設定する必要がありますか?もしあなたが提案したものを完成させれば、「これ」が窓になります。 – Phrogz

+1

@Phrogz - 私は 'setTimout'の仕組みについて話していました。 – Oded

18
var rotator = function(){ 
    widget.Rotator.rotate(); 
    setTimeout(rotator,5000); 
}; 
rotator(); 

または:

setInterval(
    function(){ widget.Rotator.rotate() }, 
    5000 
); 

または:

setInterval(
    widget.Rotator.rotate.bind(widget.Rotator), 
    5000 
); 
関連する問題