关于点击start,数字+1的问题

来源:8-6 取消计时器clearTimeout()

别动我的猫

2017-10-09 18:03

除了限制开关还有其他办法吗?


<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>

<script type="text/javascript">
  var num=0;
  var i;
  function startCount(){
      clearTimeout(i);
    document.getElementById('count').value=num;
    num=num+1;
    i=setTimeout("startCount()",1000);
  }
  function stopCount(){
    clearTimeout(i);
  }
</script>
</head>
<body>
  <form>
    <input type="text" id="count" />
    <input type="button" value="Start"  onClick="startCount()"/>
    <input type="button" value="Stop"  onClick="stopCount()"/>
  </form>
</body>
</html>

写回答 关注

2回答

  • qq_小镇_1
    2017-11-20 15:11:47
    已采纳

    加个if判断就行,如果函数正在运行就不执行。

    <script type="text/javascript">
      var num=0;
      var i;
      var nowOn=false;//预设条件,初始化false。
        function startCount2(){
        document.getElementById('count').value=num;
        num=num+1;
        i=setTimeout("startCount2()",1000);
        nowOn=true;//函数运行,条件变为true。
      };
      
      function startCount(){
        if(nowOn==false){ //判断是否在运行状态。
           startCount2();
        }};
        
      function stopCount(){
         clearTimeout(i);
         nowOn=false;//停止运行,变回false。
      };
    </script>


    别动我的猫

    谢谢你

    2017-11-29 14:01:17

    共 1 条回复 >

  • 别动我的猫
    2017-10-09 18:11:20

    每次点击start都运行一次num=mum+1;有没有办法是点击strart,但是不运行num=num+1的办法。

    感觉是do {}while() 和while(  ){   } 的区别。 如果觉得我哪里表达不清楚,说出来,我随时更改。

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题