javascript - 清除倒计时器

标签 javascript timer countdown

我有一个实现倒计时(MM:SS)的函数。我在函数中传递分钟和秒,倒计时就会开始。现在,我希望每次传递新值时都能重置并重新启动倒计时。目前发生的情况是,如果我多次调用倒计时函数,那么我将有多个计时器一起运行,而我需要重置并重新启动相同的计时器每当我经过新的分钟和秒时计时器。谢谢

function countdown(minutes, seconds)
    {
        var endTime, hours, mins, msLeft, time;

        function twoDigits( n )
        {
            return (n <= 9 ? "0" + n : n);
        }

        function updateTimer()
        {
            canvas.style.color = "black";
            canvas.innerHTML = "00:00"; //clear canvas
            msLeft = endTime - (+new Date);
            if ( msLeft < 1000 )                
                flashyText();
            else {
                canvas.style.color = "white";
                time = new Date( msLeft );
                hours = time.getUTCHours();
                mins = time.getUTCMinutes();
                canvas.innerHTML = (hours ? hours + ':' + twoDigits( mins ) : mins) + ':' + twoDigits( time.getUTCSeconds());
                setTimeout( updateTimer, time.getUTCMilliseconds() + 500 );
            }
        }

        endTime = (+new Date) + 1000 * (60*minutes + seconds) + 500;
        updateTimer();
    }

最佳答案

检索当前计时器的 ID 并在设置新计时器之前取消它。

由 w3schools 提供:-

var myVar;

function myFunction() {
    myVar = setTimeout(function(){ alert("Hello") }, 3000);
}

function myStopFunction() {
    clearTimeout(myVar);

}

关于javascript - 清除倒计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48493101/

相关文章:

javascript - 如何在javascript中设置一分钟计数器?

jquery - 在 WordPress 中使用 Jquery 倒计时

javascript - 如何删除 "printing"html 的 href 到 PDF?

javascript - 该 JSON 无效吗?

c# - 停止等待来自串口的数据包

java - 再延迟 java.util.Timer x 秒

mysql - 在 PostgreSQL 或 MySQL 中是否存在反向 "AUTO_INCREMENT"的现存实现?

javascript - 为什么我的 ng-click 不起作用

javascript - 如何使用 JavaScript Replace() 删除输入元素

java - 如何每 2 秒更新 TextArea(Jframe) 中的变量?