[英]clearInterval does not stop the interval operation
我正在使用一个计时器,希望setInterval()
操作在计数器达到零时终止。 此外,如果您愿意的话,我希望该功能“关闭”,这样我就可以重置输入到计时器中的值,而不会再次使计时器开始递减。
当我像这样配置代码时:
function countdown(){ var intervalKill = setInterval(function(){ var start = document.getElementById("startValue").innerHTML; if (start > 1){ var time_left = start - 1; document.getElementById("startValue").innerHTML = time_left; } else if (start === 1) { clearInterval(intervalKill) } }, 1000); }
我使它运行得很好,但是如果达到1,并且重置了计时器,它将立即立即开始倒计时。
当我这样编码时:
function countdown(){ var intervalKill = setInterval(function(){ var start = document.getElementById("startValue").innerHTML; if (start > 1){ var time_left = start - 1; document.getElementById("startValue").innerHTML = time_left; } else if (start === 1) { clearInterval(intervalKill); break; } }, 1000); }
该功能根本无法运行。 有人可以阐明这里发生的事情以及如何使其工作吗?
function countdown(){
var intervalKill = setInterval(function(){
var start = document.getElementById("startValue").innerHTML;
if (start > 1){
var time_left = start - 1;
document.getElementById("startValue").innerHTML = time_left;
} else if (+start === 1) {
clearInterval(intervalKill);
// break; <-- not necessary
}
}, 1000);
}
使用一元+或parseInt
解析start
整数,或使用==
代替===
因为后者也会检查类型信息。 innerHTML
返回一个字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.