为什么我的倒计时器不能启动和停止?

我需要制作一个从5到0的简单倒计时计时器,其中包含启动和停止计数器的按钮。我唯一不知道的是我的计数器为什么不停下来。

代码如下:

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
   function clock() {
     var myTimer = setInterval(myClock, 1000);
     var c = 5;

     function myClock() {
       document.getElementById("demo").innerHTML = --c;
       if (c == 0) {
         clearInterval(myTimer);
         alert("Reached zero");
       }
     }
   }
<p id="demo">5</p>
<button onclick="clock()">Start counter</button>
<button onclick="clearInterval(myTimer)">Stop counter</button>


解决方案

在这里,您只需要使myTimer成为全局的。我还修复了一个故障,重置计时器后,它不会显示5。

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
var myTimer;
   function clock() {
     myTimer = setInterval(myClock, 1000);
     var c = 5;

     function myClock() {
       document.getElementById("demo").innerHTML = --c;
       if (c == 0) {
         clearInterval(myTimer);
         alert("Reached zero");
       }
     }
   }
<p id="demo">5</p>
<button onclick="clock(); document.getElementById('demo').innerHTML='5';">Start counter</button>
<button onclick="clearInterval(myTimer);">Stop counter</button>

相关文章