如何在Javascript中停止10秒计时器?

如何在Javascript中停止10秒计时器?,javascript,Javascript,我似乎无法在计时器归零时停止计时。它只会重复回到原来的时间!见下面我的代码 我试图实现的是,一旦计时器为0,它将用文本“您的时间到了”替换00:00 HTML: 计时器: 这是我做的Javascript: function startTimer(duration, display) { var timer = duration, minutes, seconds; setInterval(function () { minutes = parseInt(tim

我似乎无法在计时器归零时停止计时。它只会重复回到原来的时间!见下面我的代码

我试图实现的是,一旦计时器为0,它将用文本“您的时间到了”替换00:00

HTML:


计时器:
这是我做的Javascript:

function startTimer(duration, display) {
    var timer = duration, minutes, seconds;
    setInterval(function () {
        minutes = parseInt(timer / 60, 10);
        seconds = parseInt(timer % 60, 10);

        minutes = minutes < 10 ? "0" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;

        display.textContent = minutes + ":" + seconds;
        console.log(display.textContent);

        if (--timer < 0) {
            timer = duration;
            clearInterval(timer); // this piece of code didnt stop the timer
        }
    }, 1000);
}

window.onload = function () {
        var oneMinute = 10 * 1,
        display = document.querySelector('#qTimer');
        startTimer(oneMinute, display);
};
功能启动定时器(持续时间,显示){
var定时器=持续时间,分钟,秒;
setInterval(函数(){
分钟=parseInt(计时器/60,10);
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display.textContent=分钟+“:”+秒;
console.log(display.textContent);
如果(--定时器<0){
定时器=持续时间;
clearInterval(计时器);//这段代码没有停止计时器
}
}, 1000);
}
window.onload=函数(){
var一分钟=10*1,
display=document.querySelector('#qTimer');
startTimer(一分钟,显示);
};

您只需捕获由
setInterval()返回的间隔id
并使用它:

功能启动定时器(持续时间,显示){
var定时器=持续时间,分钟,秒;
变量id=setInterval(函数(){
分钟=parseInt(计时器/60,10);
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display.textContent=分钟+“:”+秒;
console.log(display.textContent);
如果(--定时器<0){
定时器=持续时间;
clearInterval(id);//使用返回的id
}
}, 1000);
}
clearInterval()
希望传递对间隔的引用

您正在传递的是
计时器
,它不是对间隔的引用-它是传入函数param中的整数

将间隔指定给一个变量,并在需要清除该变量时引用该变量

let foo = setInterval(() => {
    /* code... */
    clearInterval(foo);
}, 1000);

clearInterval需要在传递其他内容时使用intervalID。请看,您需要一个对计时器的引用,比如var timer=setinterval(函数……….,1000);然后clearInterval(计时器)将工作。
let foo = setInterval(() => {
    /* code... */
    clearInterval(foo);
}, 1000);