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

为什么连续点击start速度会变快,而且stop不下来

<!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(){

    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>


正在回答

5 回答

在startCount函数里第一行加 clearTimeout(i);可以解决这个问题

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

同学代码里的第一个代码就解决这个问题

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

很有趣的发现

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

可以停止, 你点了多少次start. 就点多少次 stop.

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

aycl

stop 需要 id,但只有一个变量 i 来记录 id,所以是如何记录到所有 id 的?
2019-01-18 回复 有任何疑惑可以回复我~
#2

PaulPierce 回复 aycl

这个我也不清楚. 我是实际测试的结果. 尴尬...
2019-02-18 回复 有任何疑惑可以回复我~

因为你不停的在打开定时器,你开了无数个。。所以导致程序乱了。。

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

上元琦梦 提问者

相当于多个进程在执行一个数据,是这样么 ?
2018-12-19 回复 有任何疑惑可以回复我~
#2

阳火锅 回复 上元琦梦 提问者

是这样的,首先你点击一下开了一个定时器在跑对吧。。这个定时器不会自己停止,因为你代码只写了打开,没写关闭。然后你二次又点击,等于又把定时器打开。你这样无限制的打开打开,你也数不清你开了多少个定时器了吧。。就相当于多次重复调用
2018-12-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么连续点击start速度会变快,而且stop不下来

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