按stop停不下来,而且时钟不是一秒跳1秒,而是一秒跳3秒甚至5秒的数,总之很怪异。

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

无无法师

2016-10-14 10:06

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
</head>
<script type="text/javascript">
  var num=0;
  var i;
  function startCount(){
    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>

http://img.mukewang.com/58003d660001e4ab06200396.jpg

写回答 关注

6回答

  • 慕村1994845
    2016-10-25 19:48:17
     <input type="button" value="Start" onClick("startCount()") />
        <input type="button" value="Stop" onClick("stopCount()")  />
        <!--这里onclick后面不是用“=”吗?这括号目前我是没见过有用过-->


  • 慕无忌4478443
    2016-10-19 08:44:16

    每点一次start按钮,就会调用一次startCount()函数,所以计时速度就会加快。

    如果想停止就,点相应次数的stop。

  • Ken2016
    2016-10-14 13:35:25

    function startCount(){
     clearTimeout(i);
     document.getElementById('count').value=num;
     num=num+1;
     i=setTimeout("startCount()",1000);
    }

    主要的原因是你在start里面没有清除原来的定时器, 如果点击多次之后, stop也需要点击多次才会停止所有已开启的定时器

  • YOU_ME
    2016-10-14 11:23:38

    大概看了下,本身逻辑没有问题,把下面的点击事件后面改成"="试试

    <input type="button" value="Start" onClick="startCount()" />

    <input type="button" value="Stop" onClick="stopCount()"  />


  • qq_常春藤_04143801
    2016-10-14 10:45:59

    <!DOCTYPE HTML>

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    <title>计时器</title>

    </head>

    <script type="text/javascript">

    var num=0;

    function startCount(){

    document.getElementById('count').value=num;

    num=num+1;

    i=setTimeout(startCount,1000);

    }

    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>


  • qq_常春藤_04143801
    2016-10-14 10:42:23

    <script type="text/javascript">

      var num=0;

      var i;

      function startCount(){

        document.getElementById('count').value=num;

       for(i=0;i<num.length;i++) {

       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>


JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题