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

javascript 计时器的疑问

javascript 计时器的疑问

uwenhao2008 2016-01-05 09:52:23
<!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()",1000);      var flag=0;     function changetime(){      flag++;      if(flag%2==1){      document.getElementById("button").value = "stop";//这里注意要有""号的,否则会报错。这种地方老是出错!!!~~~      clearInterval(i);      }      else{      document.getElementById("button").value = "start";      setInterval("clock()",100);      }     document.getElementById("flag").value=flag;     } </script> </head> <body>   <form>     <input type="text" id="clock" size="50"  />     <input type="button" value="变化值" id="button" onclick="changetime()" />     <li><input type="text" value="flag值" id="flag" /></li>   </form> </body> </html>按照用flag标志位进行判断条件的思路,我哪里有问题啊?我把每次的flag值都显示出来了,但是只有页面刷新以后的第一次stop、第一次start按钮才起作用,以后点击button的时候会进行stop、start切换显示,但是clearInterval(i);和setInterval("clock()",100);不起作用了,高人帮我分析下我哪里没考虑到啊,谢谢。我按照每次的flag值进行运算,没有发现哪里出问题啊?
查看完整描述

2 回答

已采纳
?
Caballarii

TA贡献1123条经验 获得超629个赞

else里的setInterval("clock()",100);要写成i=setInterval("clock()",100);

要不然clearInterval没办法清楚i啊

查看完整回答
反对 回复 2016-01-05
  • uwenhao2008
    uwenhao2008
    原来如此,你回答的好快啊。谢谢了。还有一个疑问,第11行的命令在我点击button的时候就终止了吗?这个地方var i = setInterval("clock()",1000);不是每个多少时间就自动执行的吗?
  • Caballarii
    Caballarii
    setInterval代表设定一个计时器,赋值给i,i就是这个计时器,clearInterval就是清除这个计时器,清除了就不会再定时执行了
?
ppo_YXWU

TA贡献9条经验 获得超1个赞

setInterval("clock()",100);

要换成i = setInterval("clock()",1000);

要不然clearInterval(i);只有第一次运行成功,后面i都没值的。

查看完整回答
反对 回复 2016-01-05
  • 2 回答
  • 0 关注
  • 1529 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信