使用JQuery计时器调用js函数


137

无论如何有实现JQuery的计时器,例如。每10秒需要调用一个js函数。

我尝试了以下

window.setTimeout(function() {
 alert('test');
}, 10000);

但这只会执行一次,然后再也不会执行。

Answers:



50
window.setInterval(function() {
 alert('test');
}, 10000);

window.setInterval

重复调用一个函数,每次调用之间有固定的时间延迟。


45

可能想签出jQuery Timer来管理一个或多个计时器。

http://code.google.com/p/jquery-timer/

var timer = $.timer(yourfunction, 10000);

function yourfunction() { alert('test'); }

然后,您可以使用以下命令进行控制:

timer.play();
timer.pause();
timer.toggle();
timer.once();
etc...

不错的工具。允许控制生命周期。
Jigar Shah 2012年

当一个计时器需要控制另一个计时器时非常有用
Onimusha 2013年

1
即时通讯收到错误消息:(“” TypeError:$ .timer不是一个函数“
sjd

2
那是因为您需要从链接获取插件。
Giszmo'4

25

setInterval是您想要的函数。每x毫秒重复一次。

window.setInterval(function() {
    alert('test');
}, 10000);

11

如果您只需要触发一次并且已经开始使用该版本,则jQuery 1.4还包含一个.delay(duration,[queueName])方法。

$('#foo').slideUp(300).delay(800).fadeIn(400);

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

糟糕...。我的错误是您正在寻找要继续触发的事件。我将其留在这里,可能有人会觉得有帮助。



2

您可以使用setInterval()方法,也可以 从自定义函数调用setTimeout(),例如

function everyTenSec(){
  console.log("done");
  setTimeout(everyTenSec,10000);
}
everyTenSec();

-2
function run() {
    window.setTimeout(
         "run()",
         1000
    );
}

6
-1,因为向eval提供字符串而不是简单地提供函数是太多错误的根源。
vog 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.