如何将函数调用延迟5秒?

Web*_*net 183 javascript jquery

我希望widget.Rotator.rotate()在调用之间延迟5秒...我如何在jQuery中执行此操作...似乎jQuery delay()不适用于此...

Bru*_*oLM 388

您可以使用普通的javascript,这将在5秒后调用your_func一次:

setTimeout(function() { your_func(); }, 5000);
Run Code Online (Sandbox Code Playgroud)

如果您的函数没有参数且没有明确的接收器,您可以直接调用 setTimeout(func, 5000)

还有一个我曾经使用过的插件.它有oneTimeeveryTime方法.

  • 如果没有函数参数,则不需要包含`函数` - 这样就可以了:`setTimeout(your_func,5000);` (38认同)
  • 我建议你修改你的答案,说_"如果你的函数没有参数,没有明确的接收者"_,或类似的东西,但措辞的方式对于新程序员来说更清楚. (3认同)
  • 此外,如果在第一次调用setTimeout时使用myTimer = setTimeout(...),则可以使用clearTimeout(myTimer)来停止调用该函数. (2认同)

Phr*_*ogz 21

var rotator = function(){
  widget.Rotator.rotate();
  setTimeout(rotator,5000);
};
rotator();
Run Code Online (Sandbox Code Playgroud)

要么:

setInterval(
  function(){ widget.Rotator.rotate() },
  5000
);
Run Code Online (Sandbox Code Playgroud)

要么:

setInterval(
  widget.Rotator.rotate.bind(widget.Rotator),
  5000
);
Run Code Online (Sandbox Code Playgroud)