Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript clearInterval按钮未停止setInterval倒计时_Javascript_Timer_Setinterval_Countdown_Clearinterval - Fatal编程技术网

Javascript clearInterval按钮未停止setInterval倒计时

Javascript clearInterval按钮未停止setInterval倒计时,javascript,timer,setinterval,countdown,clearinterval,Javascript,Timer,Setinterval,Countdown,Clearinterval,这个想法是制作一个简单的js倒数计时,以分钟和秒为单位,在html文档中显示数字,用一个按钮开始/继续,另一个按钮停止/暂停。我在暂停时间时被卡在了秒上…开始按钮工作,但我似乎不明白为什么停止不工作。我读过多个类似的问题,尝试修复,但结果仍然相同。有什么想法吗 非常感谢! var最小值=5; var-sec=60; 无功输出; document.getElementById(“min”).innerHTML=min; 如果(秒>=60) {document.getElementById(“sec

这个想法是制作一个简单的js倒数计时,以分钟和秒为单位,在html文档中显示数字,用一个按钮开始/继续,另一个按钮停止/暂停。我在暂停时间时被卡在了秒上…开始按钮工作,但我似乎不明白为什么停止不工作。我读过多个类似的问题,尝试修复,但结果仍然相同。有什么想法吗

非常感谢!
var最小值=5;
var-sec=60;
无功输出;
document.getElementById(“min”).innerHTML=min;
如果(秒>=60)
{document.getElementById(“sec”).innerHTML=“00”;}
其他的
{document.getElementById(“sec”).innerHTML=secoutput;}
函数start(){
var secoutput=setInterval(函数(){
sec-=1;
document.getElementById(“sec”).textContent=sec;
如果(秒
var最小值=5;
var-sec=60;
无功输出;
document.getElementById(“min”).innerHTML=min;
如果(秒>=60)
{document.getElementById(“sec”).innerHTML=“00”;}
其他的
{document.getElementById(“sec”).innerHTML=secoutput;}
函数start(){
//删除变量,以便使用原始变量
secoutput=setInterval(函数(){
sec-=1;
document.getElementById(“sec”).textContent=sec;

如果(sec问题是您在
start()
函数内声明
var secoutput=setInterval(function(){
)。因此,您无法访问
start()外的特定变量
函数。如果您只需删除
var
声明,并且只有一个
secoutput=setInterval(function(){
),那么您的代码就可以工作。您可以在JavaScript中了解有关闭包的更多信息。

问题在于start()函数,您在该函数中重新声明了secoutput变量。只需更改以下内容:

var secoutput = setInterval(function(){ ... }
为此:

secoutput = setInterval(function(){ ... }

您在
start()
函数中重新声明了
secoutput
。将
var
放在那里。您在
start
中使用了
var secoutput
,因此您在
start
方法中重新定义了
secoutputsecoutput
从未分配任何内容