function consoleTest() {
setInterval(function(){
console.log('Hello World');
}, 1000);
}
$('#button').on('click', function(){
clearInterval(consoleTest);
});
consoleTest();
当我点击按钮时,我创建了一个简单的应用程序,它将停止/暂停间隔。我知道如何使它工作我只需要在函数外部声明一个变量并包含setInterval,现在我很困惑为什么clearInterval如果我通过函数调用它就会工作,有人请向我解释一下
答案 0 :(得分:6)
这是setInterval
和cleaInterval
的正确用法。
setInterval
返回一个值,您需要将该值保存在两个函数的作用域中。如果要清除间隔,请使用clearInterval
并将变量作为参数传递给它:
var interval;
function consoleTest() {
interval = setInterval(function() {
console.log('Hello World');
}, 1000);
}
$('#button').on('click', function() {
clearInterval(interval);
});
consoleTest();
如需进一步阅读:clearInterval和setInterval。
答案 1 :(得分:2)
这里有两个问题。首先,您不要在任何地方从setInterval()
设置返回的计时器ID。 consoleTest
是包装计时器的函数,而不是对计时器的引用,这应该给clearInterval()
。其次,您需要将定时器引用放在两个函数的范围内。考虑到这一点,试试这个:
function consoleTest() {
return setInterval(function(){
console.log('Hello World');
}, 1000);
}
$('#button').on('click', function(){
clearInterval(interval);
});
var interval = consoleTest();