加了个按钮后 停止键不管用了?

来源:8-4 取消计时器clearInterval()

亻亻殊途

2016-10-08 21:36

<title>计时器</title>

<script type="text/javascript">

   function clock(){

      var time=new Date();                

      document.getElementById("clock").value = time;

   }

   

    function a(){

    var i=setInterval(clock,100);}

</script>

</head>

<body>

  <form>

    <input type="text" id="clock" size="50"  />

  <input type="button" value="Start"  onclick="a()"/>

    <input type="button" value="Stop"  onclick="clearInterval(i)"/>


写回答 关注

3回答

  • 慕村1994845
    2016-10-23 21:18:34

    functon a(){}上面是不是应该设置setInterval(clock,100),也就是变量i

  • 亻亻殊途
    2016-10-09 10:41:25

     function a(){

        var i=setInterval(clock,100);}

        function b(){

            clearInterval(i);

        }

    </script>

    </head>

    <body>

      <form>

        <input type="text" id="clock" size="50"  />

      <input type="button" value="Start"  onclick="a()"/>

        <input type="button" value="Stop"  onclick="b()"/>

      </form>

    能帮我看看么  我这样定义了函数后 点击Stop键并没有反应,是哪里出现了问题?

    亻亻殊途

    原来是这样 如果想要在 b()函数中使用i变量的话 需要i变量在a()函数外声明才行

    2016-10-09 10:46:22

    共 1 条回复 >

  • MORRY
    2016-10-08 22:24:40

    你都还没有为 onclick="clearInterval(i)" 里的clearInterval(i)写 JS代码,自然就点击停止键不管用;而且不要把JS 内部函数函数当做自定义的函数变量。

    现在我明白你的用意了,你是认为 你在停止键那里写上 onclick="clearInterval(i)",这样就可以实现点击停止键,然后就可以停止了;但事实上是不可以的。自定义函数是自定义函数,你要想你的自定义函数能为你做些事,那你需要为你的自定义函数编码;就算你的 a()函数一样。JS内部函数是JS自己事先被实现过的函数,然后直接来给我们用的。

    为了解决你的问题,你可以像 a()函数那样 为 stop键自定义个函数,然后在该自定义函数里,使用clearIntervar(id_of_setIntervar)。

    希望对你有帮助。

    亻亻殊途

    明白了。但是在老师的列子里:<input type="button" value="Stop" onclick="clearInterval(i)" /> 仍然直接使用了clearInterval(i) 并且能够直接使用并没有再去自定义函数是怎么回事呢

    2016-10-09 10:27:26

    共 1 条回复 >

JavaScript进阶篇

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

467394 学习 · 21877 问题

查看课程

相似问题