为了账号安全,请及时绑定邮箱和手机立即绑定

【问】点击 stop 可以停止,但是点击 start 两次后,stop 就失效了,在别的工具上实验同样。

<!DOCTYPE HTML>

<html>

<head>

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

<title>计时器</title>

<script type="text/javascript">

   function clock(){

      var time=new Date();                

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

   }

   var i = setInterval("clock()",100);

   function ms() {

       i = setInterval("clock()",100);

   }

     

</script>

</head>

<body>

  <form>

    <input type="text" id="clock" size="50" style="background:#000;color:#0f0;width:100%" />

    <input type="button" value="start" onclick="ms()" />

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

  </form>

</body>

</html>


正在回答

5 回答

因为你每次 i = setInterval(clock,1000) 之后,i 都只是保存最后一个计时器的变量,你按了多次 start, 再按 stop ,只能清除掉这最后保存的计时器,之前的计时器没有清除掉,也就停不下来了。

解决的方法是,在 st() 这个函数里的最前面,加一句 clearInterval(i); 


出处:http://www.imooc.com/qadetail/194899

0 回复 有任何疑惑可以回复我~
#1

_蜡笔小新_

st()在这里是你的ms()
2017-04-19 回复 有任何疑惑可以回复我~

我就奇怪了,我试了点start两次后就stop不下来了

0 回复 有任何疑惑可以回复我~

你这个应该可以正常运行啊,我这么写就可以

0 回复 有任何疑惑可以回复我~

我试了一下,没有错,

我一开始带着自动运行写的,有问题;但是提交后刷新了一下,再试了试又没有出问题了

0 回复 有任何疑惑可以回复我~

写的有问题 方法不应该那么写

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

【问】点击 stop 可以停止,但是点击 start 两次后,stop 就失效了,在别的工具上实验同样。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信