Javascript 如何在使用闭包时设置clearInterval()

Javascript 如何在使用闭包时设置clearInterval(),javascript,Javascript,如何使用单击按钮停止此操作 function MakeCounter(){ var count = 0; setInterval (countIt, 1000) function countIt(){ count++; document.getElementById('demo').innerHTML = count; // result div } } MakeCounter(); 为set

如何使用单击按钮停止此操作

function MakeCounter(){
    var count = 0;
    setInterval (countIt, 1000)
        function countIt(){
            count++;
            document.getElementById('demo').innerHTML = count;  // result div
        }
}
MakeCounter();  

setInterval
声明一些
Global
变量,然后单击
clearInterval(开始)

演示片段:
var启动;
函数MakeCounter(){
var计数=0;
开始=设置间隔(计数,1000)
函数countIt(){
计数++;
document.getElementById('demo').innerHTML=count;//结果div
}
}
MakeCounter()


停止
setInterval
声明一些
Global
变量,然后单击
clearInterval(开始)

演示片段:
var启动;
函数MakeCounter(){
var计数=0;
开始=设置间隔(计数,1000)
函数countIt(){
计数++;
document.getElementById('demo').innerHTML=count;//结果div
}
}
MakeCounter()


stop
您可以在函数内部创建按钮,并添加用于停止间隔的evelt侦听器

函数MakeCounter(){
函数countIt(){
计数++;
document.getElementById('demo').innerHTML=count;
}
变量计数=0,
间隔=设置间隔(计数,1000),
button=document.createElement('button');
appendChild(document.createTextNode('stop'));
button.id='stop';
document.body.appendChild(按钮);
document.getElementById('stop')。addEventListener('click',函数(){
间隔时间;
},假);
}
MakeCounter()

0
您可以在函数内部创建按钮,并添加一个用于停止间隔的evelt侦听器

函数MakeCounter(){
函数countIt(){
计数++;
document.getElementById('demo').innerHTML=count;
}
变量计数=0,
间隔=设置间隔(计数,1000),
button=document.createElement('button');
appendChild(document.createTextNode('stop'));
button.id='stop';
document.body.appendChild(按钮);
document.getElementById('stop')。addEventListener('click',函数(){
间隔时间;
},假);
}
MakeCounter()

0
如果没有存储返回值
var myInterval=setInterval(…)
则不能停止(清除)它,然后再存储
clearInterval(myInterval)
如果没有存储返回值
var myInterval=setInterval(…)
则不能停止(清除)它,然后再存储
clearInterval(myInterval)
则不能停止(清除)它
设置间隔(myTimer,1000)设置间隔(myTimer,1000)
我认为在调用
clearInterval
之前,我们还应该检查
start
是否未定义。@MohitBhardwaj它已经在document ready上定义了。那么在调用
clearinterval
之前为什么要检查它的
undefined
。哦,是的,你是对的。在这种情况下,它确实给出了错误。抱歉。我想在调用
clearInterval
之前,我们还应该检查
start
是否未定义。@MohitBhardwaj它已经在documentready上定义了。那么在调用
clearinterval
之前为什么要检查它的
undefined
。哦,是的,你是对的。在这种情况下,它确实给出了错误。很抱歉
var myVar = setInterval(function(){ myTimer() }, 1000);

function myTimer() {
    var d = new Date();
    var t = d.toLocaleTimeString();
    document.getElementById("demo").innerHTML = t;
}

function myStopFunction() {
    clearInterval(myVar);
}