javascript setTimeout函数不起作用

时间:2012-11-02 07:07:04

标签: javascript jquery

我试图每隔一秒更新一个变量。出于这个原因,我正在使用setTimeout。但它不会更新变量。它只注销一次0。这是我的代码

var yes=0;
setTimeout(function () {
    console.log(yes);
    yes++;
}, 1000);​

4 个答案:

答案 0 :(得分:3)

使用setInterval完成重复操作,使用clearInterval(yourInterval)清除间隔;

<强> Live Demo

var yes=0;
yourInterval = setInterval(function () {
    console.log(yes);
    yes++;
}, 1000);​

答案 1 :(得分:2)

setTimeout只会重复一次,尝试使用setInterval,以便每隔一秒增加yes一次

但请记住,在某个时候你进入一个永无止境的循环后清除间隔

使用clearInterval()

答案 2 :(得分:0)

setTimeOut方法只在特定超时后调用一次,在你的情况下为1000,尝试使用setInterval方法

答案 3 :(得分:0)

jsBin demo with setTimeout

如果你真的想坚持使用setTimeout(我很欣赏;)) 不仅仅是将所有内容包装成一个函数并在其中自我调用:

var yes=0;

(function loop(){

  setTimeout(function () {

    console.log(yes);
    yes++;
    loop();  // loop recall

  }, 1000);

})();

否则请转到 setInterval

var yes=0;

function count(){  
    console.log(yes);
    yes++;  
}

setInterval(count, 1000);
相关问题