繁体   English   中英

clearInterval不会停止间隔操作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM