要想实现重置后,再点start重新从0开始计数而不是按重置前的数接着计数,reCount函数怎么写?

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

七寒谷

2016-04-23 21:43

要想实现重置后,再点start重新从0开始计数而不是按重置前的数接着计数,reCount函数怎么写?
<!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);//i为全局变量
  }
  function stopCount(){
    clearTimeout(i);
  }
  function reCount(){
    document.getElementById('count').value=0;
//这里应该怎么写???
  }
</script>
</head>
<body>
  <form>
    <input type="text" id="count" />
    <input type="button" value="Start" onclick="startCount()" />
    <input type="button" value="Stop" onclick="stopCount()"  />
    <input type="button" value="Reset" onclick="reCount()"  />
  </form>


写回答 关注

4回答

  • 七寒谷
    2016-04-24 21:00:47
     function reCount(){
    	  document.getElementById('count').value=0;
              num=0;
    	  stopCount();
      }
    我改成这样子就达到效果了,你们怎么觉得?
  • Uauslman
    2016-04-24 13:58:27

    就一个num=0;即可

  • akiaki
    2016-04-24 10:52:11

      function reCount(){

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

         num=0;

        startCount();

      }


    akiaki 回复七寒谷

    - -那不是直接设置num=0 然后调用stop就好了吗

    2016-04-24 23:13:45

    共 2 条回复 >

  • weibo_陈_兆群_0
    2016-04-23 22:06:03

    reCount函数里面的那句话改成num=0;就行了。。。。。因为你那句赋值只是给文本框赋值,setTimeout函数还一直在运行着,num变量的值没有改变。

    weibo_... 回复七寒谷

    因为你本身的startCount函数就有把num的值赋值给文本框的代码呀,就是 document.getElementById('count').value=num;而且它是放在num=num+1前面的,所以它执行了0

    2016-04-24 21:16:19

    共 4 条回复 >

JavaScript进阶篇

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

467356 学习 · 21877 问题

查看课程

相似问题