var i=setTimeout("startCount()",1000); 这句前面加var 就不能使用暂停为什么

来源:8-6 取消计时器clearTimeout()

qq_因为太帅曾被砍_0

2017-02-22 11:56

<!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;
  //var i;
  function startCount(){
    document.getElementById('count').value=num;
    num=num+1;
    var i=setTimeout("startCount()",1000);  //这离i前面不能加VAR
  }
  
</script>
</head>
<body>
  <form>
    <input type="text" id="count" />
    <input type="button" value="Start" onclick='startCount()'/>
    <input type="button" value="Stop" onclick='clearTimeout(i)' />
  </form>
</body>
</html>


写回答 关注

2回答

  • qq_那些年_41
    2017-02-27 18:03:14

    i  是局部变量

    var i是全局变量

    你去看看局部变量和全局变量的解释和定义吧

  • 套子里的海怪
    2017-02-22 12:45:25

    这个是全局变量和局部变量的问题,你的i在starCount内部时,i是局部变量,你在内部定义的i在外部是不存在的,所以你在另一个函数里面调用这个i,自然就无效。

    所以要在外部定义i,这样这个i就是全局变量,当你在清除定时器的函数里调用i时,是可以被调用的,因为是全局变量的关系。

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题