这是我的jquery代码我想运行1秒的计时器,每一秒木材更新div的内部文本到+1,显示时间就像一个时钟但我想在15秒后过期木材我的意思是我不会在15秒后再更新计时器。
var count = 0;
var Update_Div = setInterval(function(){
count++;
$("div").text(count);
},1000);
setTimeout(Update_Div, 15000);
但是在15秒后仍然更新时间,请帮助我如何解决它。 抱歉英文不好。我希望你能通过观察代码来理解。
答案 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);
答案 1 :(得分:2)
var count = 0;
var Update_Div = setInterval(function() {
count++;
console.log(count);
if (count == 15){
clearInterval(Update_Div);
}
}, 1000);