每隔n秒执行一次功能

时间:2010-03-24 22:38:24

标签: javascript jquery

我制作了这个片段,在第10秒后点击了一个链接:

function timeout() {
    window.setTimeout(function() {
     $('img.left').click();
    }, 1000);
    setTimeout("timeout()", 1000); 
}
timeout();

我的问题是,我如何每隔10秒执行一次这个功能,而不是只执行一次?

这是最好的方法,还是你喜欢某种漂亮的jQuery方法?

5 个答案:

答案 0 :(得分:7)

使用setInterval代替setTimeout

http://javascript.about.com/library/blstvsi.htm

答案 1 :(得分:3)

setInterval(yourFunction, 1000 * 10);

(以毫秒为单位的时间:1000秒为1秒,1000 * 10为10秒)

哪个比“setTimeout”好;更具可读性等。

答案 2 :(得分:3)

我使用此方法进行轮询,重复更新和动画:

var timerId = setInterval(function() {

    if (timeToStopConditionMet) {
        clearInterval(timerId);
        return;
    }

    // your recurring code

}, 10000); // 10000 makes this code execute every 10 seconds

答案 3 :(得分:1)

是的,setInterval(timeout, 1000) 几乎同样的事情。它有点不同,因为下一个间隔在1000ms后立即开始计数,而不是在运行的脚本完成(甚至开始)之后。出于大多数目的,我正是出于这个原因提倡反对它。你的实施更好,IMO。

此外,您不需要在字符串中传递timeout函数,您只需直接传递引用,即setTimeout(timeout, 1000)而不是setTimeout("timeout()", 1000)

答案 4 :(得分:0)

window.onload=function(){
    GetCount(dateFuture1, 'countbox1');
}