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