How do I delay a function call for 5 seconds?
JavascriptJqueryJavascript Problem Overview
I want widget.Rotator.rotate()
to be delayed 5 seconds between calls... how do I do this in jQuery... it seems like jQuery's delay()
wouldn't work for this...
Javascript Solutions
Solution 1 - Javascript
You can use plain javascript, this will call your_func once, after 5 seconds:
setTimeout(function() { your_func(); }, 5000);
If your function has no parameters and no explicit receiver you can call directly setTimeout(func, 5000)
There is also a plugin I've used once. It has oneTime
and everyTime
methods.
Solution 2 - Javascript
var rotator = function(){
widget.Rotator.rotate();
setTimeout(rotator,5000);
};
rotator();
Or:
setInterval(
function(){ widget.Rotator.rotate() },
5000
);
Or:
setInterval(
widget.Rotator.rotate.bind(widget.Rotator),
5000
);