Javascript clearInterval不';行不通
setInterval可以工作,但当我再次运行该函数时,它会在控制台中打印出应该删除它。但是它没有。Javascript clearInterval不';行不通,javascript,timer,Javascript,Timer,setInterval可以工作,但当我再次运行该函数时,它会在控制台中打印出应该删除它。但是它没有。timer在每次调用start时都会重新初始化,所以第二次调用它时,它不会指向要清除的计时器id。timer在函数中声明,因此当再次调用它时,它是一个新实例 尝试在函数外部声明它,如下所示: var started = false; function start() { var timer; if(started === false) { timer = setIn
timer
在每次调用start
时都会重新初始化,所以第二次调用它时,它不会指向要清除的计时器id。timer
在函数中声明,因此当再次调用它时,它是一个新实例
尝试在函数外部声明它,如下所示:
var started = false;
function start() {
var timer;
if(started === false) {
timer = setInterval(decrease, 1000);
started = true;
} else {
clearInterval(timer);
console.log("Should Clear");
}
}
因为
计时器
在功能范围内。因此,当您第二次调用它时,它位于另一个作用域中。像这样使用
var started = false;
var timer;
function start() {
if(started === false) {
timer = setInterval(decrease, 1000);
started = true;
} else {
clearInterval(timer);
console.log("Should Clear");
}
}
只需移除线路var定时器;我推荐阅读
var started = false;
var timer;
function start() {
if(started === false) {
timer = setInterval(decrease, 1000);
started = true;
} else {
clearInterval(timer);
console.log("Should Clear");
}
}