我有一个计时器的代码,我正在尝试使其停止在0:0处,但它一直在变为负数。解决此问题的任何想法都会有所帮助。

<html>
  <head>
    <script>
      function startTimer(m,s)
      {
        document.getElementById('timer').innerHTML= m+":"+s;
        if (s==0)
        {
          if (m == 0)
          {
            clearTimeout(t);
          }
          else if (m != 0)
          {
            m = m-1;
            s = 60;
          }
        }
        s = s-1;
        t=setTimeout(function(){startTimer(m,s)},1000);
      }
    </script>
  </head>

  <body>
    <button onClick = "startTimer(0,5)">Start</button>

    <p id = "timer">00:00</p>
  </body>
</html>

最佳答案

您总是在startTimer的末尾触发新的计时器,即使您达到零也是如此。快速解决方案是在其后添加return;而不是clearTimeout(t);

07-28 05:56