Jquery变量的Settimeout

时间:2014-11-25 11:37:43

标签: jquery

这是我的jquery代码我想运行1秒的计时器,每一秒木材更新div的内部文本到+1,显示时间就像一个时钟但我想在15秒后过期木材我的意思是我不会在15秒后再更新计时器。

var count = 0;
var Update_Div = setInterval(function(){
    count++;
    $("div").text(count);
    },1000);

    setTimeout(Update_Div, 15000);

但是在15秒后仍然更新时间,请帮助我如何解决它。 抱歉英文不好。我希望你能通过观察代码来理解。

2 个答案:

答案 0 :(得分:3)

那是因为你没有对setTimeout()做任何事情,除了传递一个间隔ID。

在超时结束时清除间隔时间:

setTimeout(function(){
    clearInterval(Update_Div);
}, 15000);

虽然这依赖于我们的定时器彼此同步工作,但往往是毫秒差异。

您应该做的不是使用setInterval并创建仅使用setTimeout()的递归函数:

function countTo(max, n){
    var n = n || 1;
    setTimeout(function(){
        $('div').text(n);
        if(n < max) countTo(max, n + 1);   
    }, 1000);
}

countTo(15);

JSFiddle

答案 1 :(得分:2)

var count = 0;
var Update_Div = setInterval(function() {
    count++;
    console.log(count);
    if (count == 15){
        clearInterval(Update_Div);
}
}, 1000);