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

IT技术 javascript jquery
2021-01-21 16:28:40

我想widget.Rotator.rotate()在调用之间延迟 5 秒...我如何在 jQuery 中执行此操作...似乎 jQuerydelay()对此不起作用...

2个回答

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

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

如果你的函数没有参数也没有明确的接收者,你可以直接调用 setTimeout(func, 5000)

还有一个插件我用过一次。它有oneTimeeveryTime方法。

如果没有函数参数,则无需包含在 a 中function- 这样就可以了:setTimeout(your_func, 5000);
2021-03-18 16:28:40
此外,如果您在第一次调用 setTimeout 时使用 myTimer=setTimeout(...),您可以使用 clearTimeout(myTimer) 来停止调用该函数。
2021-03-22 16:28:40
@Phrogz - 我在谈论setTimout.
2021-03-27 16:28:40
我建议你修改你的答案,说“如果你的函数没有参数也没有明确的接收者”,或者类似的但措辞对新程序员更清楚的方式。
2021-04-04 16:28:40
@Oded 您确定Rotator.rotate()不需要将接收器设置为Rotator吗?如果你按照你的建议执行,this将是窗口。
2021-04-08 16:28:40
var rotator = function(){
  widget.Rotator.rotate();
  setTimeout(rotator,5000);
};
rotator();

或者:

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

或者:

setInterval(
  widget.Rotator.rotate.bind(widget.Rotator),
  5000
);