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

停止计时时为什么 var aa = setTimeout("startCount()",1000);不行?

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
<script type="text/javascript">
  var num=0;
  function startCount() {
    document.getElementById('count').value=num;
    num++;
   aa = setTimeout("startCount()",1000); 
  }
  
</script>
</head>
<body>
<form>
<input type="text" id="count" />
<input type="button"  onclick="startCount()" value="Start"/>
<input type="button"  onclick="clearTimeout(aa)" value="Stop"/>
</form>
</body>
</html>
aa = setTimeout("startCount()",1000);  // 可以停止
var aa = setTimeout("startCount()",1000);  //  报错


正在回答

2 回答

如果你没有用var的话,根据js的作用域规则,这个aa变量默认是在最外层(也就是window作用域)定义的.如果你用了var aa 那么这个变量就是在startCount这个函数作用域里面的.clear就获取不到这个变量了,对你有帮助的话,希望采纳

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

慕旧 提问者

那为什么前一章节里 var i=setInterval("clock()",100); 却可以了?
2017-12-19 回复 有任何疑惑可以回复我~
#2

慕勒7123956 回复 慕旧 提问者

我不知道前一章节讲了什么,但是和你这个情况是不一样的.
2017-12-19 回复 有任何疑惑可以回复我~
#3

慕旧 提问者 回复 慕勒7123956

前一章节的代码如下,还望详细解释!
2017-12-19 回复 有任何疑惑可以回复我~
#4

慕勒7123956 回复 慕旧 提问者

这个i不是写在函数里面的
2017-12-19 回复 有任何疑惑可以回复我~
#5

慕旧 提问者

非常感谢!
2017-12-20 回复 有任何疑惑可以回复我~
查看2条回复
<!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); 
</script>
</head>
<body>
  <form>
    <input type="text" id="clock" size="50"  />
    <input type="button" value="Stop" onclick="clearInterval(i)" />
  </form>
</body>
</html>


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

举报

0/150
提交
取消

停止计时时为什么 var aa = setTimeout("startCount()",1000);不行?

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