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

这样却停不下来

<!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;

  

  function startCount(){

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

    num=num+1;

   setTimeout("startCount()",1000);

  }

  function stopCount(){

    clearTimeout( setTimeout("startCount()",1000));

  }

</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>


正在回答

1 回答

  clearTimeout函数中要传入setTimeout函数的id,把setTimeout作为一个对象传入  clearTimeout里

可以修改成

。。。

var i =   setTimeout("startCount()",1000);

。。。

clearTimeout(i);

。。。

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

大大大大雄 提问者

非常感谢!
2016-05-30 回复 有任何疑惑可以回复我~
#2

大神在路上

我的这么写也停不下,var i;要写在 function startCount() { i=setTimeout("startCount()",1000); } 函数外才能停。 这是为什么,按说不应该是一样的吗 function startCount() { var i=setTimeout("startCount()",1000); }
2016-06-18 回复 有任何疑惑可以回复我~
#3

not_afraid 回复 大神在路上

没有var,i就被声明为了全局变量(作用域为全局,也就是文档任何地方,任何函数内部外部都可以调用这个变量,/*但最好不要这样用,加var ,把var i放在function外面,这样也是全局变量*/),函数外能获得这个变量,如果用var 在函数内声明i ,i就只是一个局部变量,局部变量的作用域(也就是作用范围)只在函数内部,外部无法调用它。
2016-06-21 回复 有任何疑惑可以回复我~
#4

CharlesLvm

@wyz_nana1026 你只是比楼主多了一个变量而已,感觉没什么本质区别啊
2016-07-14 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

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

进入课程

这样却停不下来

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