问答详情
源自:8-4 取消计时器clearInterval()

clearInterval() 的问题

问题1:我想打开页面后然后点击开始显示时间, 点击停止时间停止,在点击开始时间继续走,但是现在,点击停止时间不停为什么!

问题2:clearInterval可不可以写在function函数里调用呢?

麻烦给解释的详细点,不胜感激

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
   function clock(){
      var time=new Date();                     
      document.getElementById("clock").value = time;
   }
    
   function sta()
   {
       var  i=setInterval("clock()",1000);
   }
   
 
   
</script>

</head>

<body>
 <form>
    <input type="text" id="clock" size="50"  />
    <input type="button" value="Stop" onclick="clearInterval(i)"  />
    <input type="button" value="start" onclick="sta()" />
  </form>
</body>
</html>

提问者:大年糕 2017-02-28 14:07

个回答

  • 慕粉1502521177
    2017-02-28 15:08:45
    已采纳

    你定义的i只在sta()函数中有作用,你调用clearInterval(i)中的i得不到setInterval()的返回值,所以结束不了,你应该把i=setInterval("clock()",1000)写到函数外面;

    clearInterval()可以写在函数中调用的

  • 慕移动8376194
    2017-02-28 15:46:01

    var i 定义放外层  。在函数里边定义的 作用于只能在函数里


  • 大年糕
    2017-02-28 15:37:59

    按照刚才你说的 我把i  放到外边 变成全局变量 好使了! 谢谢哈!

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript">
    var i;
       function clock(){
          var time=new Date();                     
          document.getElementById("clock").value = time;
       }
        
       function sta()
       {
            i=setInterval("clock()",1000);
       }   
    </script>

    </head>

    <body>
     <form>
        <input type="text" id="clock" size="50"  />
        <input type="button" value="Stop" onclick="clearInterval(i)"  />
        <input type="button" value="start" onclick="sta()" />
      </form>
    </body>
    </html>

  • qq_这很好_0
    2017-02-28 15:07:09

    开启了多个计时器,刷新一下页面就好

  • 爱媳妇爱学习4152220
    2017-02-28 15:05:30

       var  i=setInterval("clock()",1000);
       function sta()
       {
             i=setInterval("clock()",1000);
       }

    改成这样就可以了。