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

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>

正在回答

5 回答

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

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

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

大年糕 提问者

我这么理解对吗,setInterval的返回值必须写在function 外 clearInterval 才能获取到返回值 是吗?
2017-02-28 回复 有任何疑惑可以回复我~
#2

慕粉1502521177 回复 大年糕 提问者

可以这么理解 简单说就是你给i的返回值必须和你想要用的i的地方在同一层或者必须在想要用i的地方的外层
2017-02-28 回复 有任何疑惑可以回复我~

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


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

按照刚才你说的 我把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>

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

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

0 回复 有任何疑惑可以回复我~
   var  i=setInterval("clock()",1000);
   function sta()
   {
         i=setInterval("clock()",1000);
   }

改成这样就可以了。

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

举报

0/150
提交
取消

clearInterval() 的问题

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