章节
问答
课签
笔记
评论
占位
占位

取消计时器clearTimeout()

setTimeout()和clearTimeout()一起使用,停止计时器。

语法:

clearTimeout(id_of_setTimeout)

参数说明:
id_of_setTimeout:由 setTimeout() 返回的 ID 值。该值标识要取消的延迟执行代码块。

下面的例子和上节的无穷循环的例子相似。唯一不同是,现在我们添加了一个 "Stop" 按钮来停止这个计数器:

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
  var num=0,i;
  function timedCount(){
    document.getElementById('txt').value=num;
    num=num+1;
    i=setTimeout(timedCount,1000);
  }
    setTimeout(timedCount,1000);
  function stopCount(){
    clearTimeout(i);
  }
</script>
</head>
<body>
  <form>
    <input type="text" id="txt">
    <input type="button" value="Stop" onClick="stopCount()">
  </form>
</body>
</html>

 

任务

补充右边编辑器第16行,完成取消计时器函数。

补充右边编辑器第23行,点击Start按钮后,开始计数。

补充右边编辑器第24行,点击Stop按钮后,停止计数。

?不会了怎么办

要取消setTimeout()计时器,要获取它的返回值ID

使用clearTimeout()取消,参数是setInterval()计时器的返回值ID

||
1
2
<!DOCTYPE HTML>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / 一捧火山灰
如果代码你没有进行更改的话,原代码里i存储的timeout的id只有最后一个触发start函数的计时器,而其他任务都以异步调用的形式等待执行,当他们再一次触发回调函数的时候,i值就又存储上计时器id了,所以会有多次点击stop可以逐个取消掉的效果;而setInterval的id只有调用该函数的时候才会唤起一次,而不是递归地调用setTimeout一样“实时更新”变量i中存储的id值。因此多次触发setInterval函数后,变量i仅能存储最后一次调用的setInterval函数的计时器id,无法再得知此前...

最新回答 / 一只小白鼠i
有的哦,可能是编译器的问题

最赞回答 / 慕无忌4360779
clearTimeout=(i)改成clearTimeout(i)

最新回答 / 慕神7341748
imooc编译器问题   自己在其他地方测试就行了

最赞回答 / 朦胧5
你startCount()函数下面有一条触发语句     setTimeout("startCount()",1000); 

已采纳回答 / NiceDay007
clearInterval是停止获取最新时间,clearTimeout是终止循环(个人理解)

最赞回答 / 路喜喜
onclick="startCount()"onclick="stopCount()"这两个写错了

已采纳回答 / 慕仙6546457
script里面写的startCount(),onclick里面写的stratCount()。好好看看函数里面的函数名~

最新回答 / 吴量
函数是JS执行作用域的一等公民,基本上任何作用域内都可以调用,但是如果函数内部调用自身,如果造成死循环,请合理使用

已采纳回答 / 吴量
<...图片...>把这句代码去掉就可以了,因为JS在第一次执行的时候,直接调用了开始函数

最新回答 / 宝慕林4117178
<input type="button" value="Stop" onclick="stopCounut()"/>stopCount()
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言