我正在使用计时器,希望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);
}
该功能根本无法运行。有人可以阐明这里发生的事情以及如何使其工作吗?
答案 0 :(得分:0)
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);
}
要么使用一元+或start
将parseInt
解析为整数,要么使用==
代替===
,因为后者也会检查类型信息。
innerHTML
返回一个字符串。