我有以下问题.当timer_mou开始计数时,当暂停等于closeit时,它不会清除间隔.
我在这里错过了什么?
function my_timer(pause){
console.log('function: '+pause);
var timer_mou = setInterval(function() {
console.log('counting');
}, 5000);
if (pause == 'closeit') {
clearInterval(timer_mou);
}
}
解决方法:
只需将setInterval置于暂停函数之外,即可在全局范围内定义变量timer_mou,然后当您调用函数时,它将正确清除它,而不是在每次调用函数时定义它,请查看下面的工作示例.
希望这可以帮助.
var i = 0;
var timer;
start();
$('#pause').on('click',function(){
pause()
})
$('#restart').on('click',function(){
restart()
})
function pause(){
clearInterval(timer);
}
function restart(){
i=0;
pause()
start();
}
function start(){
timer = setInterval(function() {
i++;
console.log('Counting '+i);
},1000);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='pause'>Pause</button>
<button id='restart'>Restart</button>