首页 > 解决方案 > 我怎样才能停止重新启动计数器

问题描述


   var time=0;
   var i=0;
   
   function stopwatch(){
       document.getElementById("p1").innerHTML=i;
       i++; }
       
  
  
   function start(){
      time=window.setInterval('stopwatch()',500);
   }

    function stop(){
       window.clearInterval(time);
   }
  </script>

<p id="p1">0</p>
<button onclick="start()">Start counter</button>
<button onclick="stop()">Stop counter</button>

我正在尝试构建秒表,但是如果我多次单击开始按钮,那么每当我单击“开始按钮”并且“停止”按钮不起作用时,时间会越来越快我该如何解决这个问题

标签: javascriptsetinterval

解决方案


  var time=0;
  var i=0;

  function stopwatch(){
    document.getElementById("p1").innerHTML=i;
  i++; }


  function start(){
    if(time) return;
    time=window.setInterval('stopwatch()',500);
  }

  function stop(){
    window.clearInterval(time);
    time = null;
  }
<p id="p1">0</p>
<button onclick="start()">Start counter</button>
<button onclick="stop()">Stop counter</button>


推荐阅读