如何在javascript倒计时中实现开始和停止按钮

如何在javascript倒计时中实现开始和停止按钮,javascript,Javascript,以下代码应启动和停止计时器,但“停止”按钮不工作。“玩”很好。它就是停不下来 var倒计时; 函数倒计时(){ var timeLeft=5; var text=document.getElementById(“倒计时”); var countDown=setInterval(函数(){ if(timeLeft==0){ 清除间隔(倒计时); text.innerHTML=“完成!”; }否则{ text.innerHTML=timeLeft; } 时间限制-=1; }, 1000); }

以下代码应启动和停止计时器,但“停止”按钮不工作。“玩”很好。它就是停不下来

var倒计时;
函数倒计时(){
var timeLeft=5;
var text=document.getElementById(“倒计时”);
var countDown=setInterval(函数(){
if(timeLeft==0){
清除间隔(倒计时);
text.innerHTML=“完成!”;
}否则{
text.innerHTML=timeLeft;
}
时间限制-=1;
}, 1000);
}

更改此行
var countDown=setInterval(函数(){
countDown=setInterval(函数(){


在第1行中,您已经声明了一个全局变量
倒计时
。然后在函数中再次声明,这就是为什么clearInterval函数不会清除该间隔。

主要问题是您在函数
局部范围
“倒计时时钟”中重新定义了变量
“倒计时”
。全局变量(在代码的第一行中定义)将保持未定义状态,因此使用
clearInterval(倒计时);
清除间隔相当于
clearInterval(未定义)
您显然不想做的事情


删除变量的本地(重新)声明将解决您的问题

来自

var countDown = setInterval(function() { ... })

countDown = setInterval(function() { ... })
尝试修改后的代码:

var倒计时;
函数倒计时(){
var timeLeft=5;
var text=document.getElementById(“倒计时”);
倒计时=setInterval(函数(){//删除了var关键字
if(timeLeft==0){
清除间隔(倒计时);
text.innerHTML=“完成!”;
}否则{
text.innerHTML=timeLeft;
}
时间限制-=1;
}, 1000);
}

这应该可以:

var倒计时;
函数倒计时(){
var timeLeft=5;
var text=document.getElementById(“倒计时”);
倒计时=设置间隔(函数(){
if(timeLeft==0){
清除间隔(倒计时);
text.innerHTML=“完成!”;
}否则{
text.innerHTML=timeLeft;
}
时间限制-=1;
}, 1000);
}


请分享更多详细信息。您试图解决什么问题?您卡在哪里了?谢谢,我完全错过了。让我发疯了!