Javascript clearInterval不';不要停止间歇

Javascript clearInterval不';不要停止间歇,javascript,setinterval,Javascript,Setinterval,我有一个if语句,它检查c变量是否达到100,然后调用clearInterval,但代码一直在运行。如果在计时器函数中移动C++,则C保持0。 我这里有一支密码笔 您的问题是因为您正在检查间隔之外的c变量 var c=0; var elem=document.getElementById(“计数器”); elem.innerHTML=“1”; window.onload=计时器; var-myInterval; 函数计时器(){ myInterval=setInterval(计数,50) }

我有一个if语句,它检查c变量是否达到100,然后调用clearInterval,但代码一直在运行。如果在计时器函数中移动C++,则C保持0。 我这里有一支密码笔


您的问题是因为您正在检查间隔之外的
c
变量

var c=0;
var elem=document.getElementById(“计数器”);
elem.innerHTML=“1”;
window.onload=计时器;
var-myInterval;
函数计时器(){
myInterval=setInterval(计数,50)
}
函数计数(){
C++;
elem.innerHTML=c;
控制台日志(c)
如果(c==100){
清除间隔(myInterval)
}
}
你好 myInterval是函数时间的本地值。使之全球化。清除计数()内的间隔:

var c=0;
var myInterval
var elem=document.getElementById(“计数器”);
elem.innerHTML=“1”;
window.onload=计时器;
函数计时器(){
myInterval=setInterval(计数,50)
}
函数计数(){
C++;
elem.innerHTML=c;
如果(c==50){
清除间隔(myInterval)
}
}

myInterval
是本地的,而且,
timer
只运行一次,而且
c
在第一次运行时肯定没有达到100
var c=0;
var elem=document.getElementById("counter");
elem.innerHTML="1";

window.onload = timer;

function timer(){

         var myInterval = setInterval(count,50)
         if (c==100) {
             clearInterval(myInterval)
         }
}

function count(){
    c++;
    elem.innerHTML=c;
    console.log(c)
}