不明白的地方有点多,希望前辈们、师哥师姐们能为我解惑,不胜感激!

来源:8-4 取消计时器clearInterval()

xueling

2015-04-25 18:51

<!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;
   }
// 每隔100毫秒调用clock函数,并将返回值赋值给i
     var i=window.setInterval("clock()",100);
     
</script>
</head>
<body>
  <form>
    <input type="text" id="clock" size="50"  />
    <input type="button" value="Stop" onclick="var inn=window.clearInterval(i)"  />
  </form>
</body>
</html>

上面这段代码运行是没有问题的。

再来看一段代码,仅修改了两个地方,分别是第13行的:“①var inn=window.clearInterval(i);和第19行的:②<input type="button" value="Stop" onclick="inn"  />

<!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;
   }
// 每隔100毫秒调用clock函数,并将返回值赋值给i
     var i=window.setInterval("clock()",100);
     var inn=window.clearInterval(i);
</script>
</head>
<body>
  <form>
    <input type="text" id="clock" size="50"  />
    <input type="button" value="Stop" onclick="inn"  />
  </form>
</body>
</html>

上面这段代码就不能正常运行了,实在不知道为什么不能这么来用,当然还有一种可能我有写错的地方,但是我不认为这个可能性很大,因为我只改了上面提到的两处地方。


再来看一段代码:

<!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;
   }// 每隔100毫秒调用clock函数,并将返回值赋值给i
     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>

这段代码倒是可以运行,不过我有不理解的地方:onclick="clearInterval(i)"中的clearInterval()应该是对象的一种方法,为什么不用添加上window.也能用。

window.clearInterval(i)

 希望前辈们不吝赐教,在下感激不尽!

写回答 关注

2回答

  • 康振宁
    2015-04-27 11:27:04
    已采纳

    这个在新的标准中,是不用写也可以的 。因为默认会这么调用的

  • 霞_霞
    2015-05-04 10:16:46

    var i=window.setInterval("clock()",100);

    var inn=window.clearInterval(i);

    这两个同时存在的话,刚生成i就被清掉了,所以页面上不显示了



JavaScript进阶篇

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

468743 学习 · 22132 问题

查看课程

相似问题