这是我的代码(在 button.click()
函数中)
if(inBreak === true) {
inBreak = false;
var timer = setInterval(function() {
if(seconds == 0) {
console.log(minutes);
minutes -= 1;
seconds = 59;
} else {
seconds -= 1;
}
$('.minutes').text(minutes);
$('.seconds').text(seconds);
}, 1000);
} else {
inBreak = true;
console.log(timer);
clearInterval(timer);
}
问题是 clearInterval(timer)
不工作,因为没有定义计时器,但我在第一次单击(并使用该函数)时定义了它。
那么您有实现该目标的想法吗? 我尝试用 let/const 代替 var 但还是没用 :(s
最佳答案
timer
是局部变量,在函数结束时销毁。
将其存储在其他地方(例如作为全局变量):
window.myTimer = setInterval(function() {
....
clearInterval(window.myTimer);
关于javascript - undefined variable 的clearInterval问题原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52078051/