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

start按钮中,为什么写onclick="clock()"不起效,而是要重新定义一个函数才起效呢

<!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); //每隔1秒就是执行一次clock()函数,并将返回值赋值给i
</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="clock()"/>
  </form>
</body>
</html>

正在回答

2 回答

clearInterval(i)已经将定时器清空了

建议修改成如下;另外你的函数名为clock, input的ID号也设置为clock,这样不好,有的浏览器对两个会不能正确识别的……

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>计时器</title>

<script type="text/javascript">

  var i;

   function Clock(){

      var time=new Date();                     

      document.getElementById("clock").value = time;


      i=setTimeout("Clock()",1000);

   }



     //var i = setInterval("Clock()",1000); //每隔1秒就是执行一次clock()函数,并将返回值赋值给i

     function StopClock(){

      clearTimeout(i);


     }

   

</script>

</head>

<body>

  <form>

    <input type="text" id="clock" size="50"  />

    <input type="button" value="Stop" onclick="StopClock()"/>

    <input type="button" value="Start" onclick="Clock()"/>

  </form>

</body>

</html>



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

阿宅娘 提问者

谢谢,确实是这个clock名相同引起的。想问下有些浏览器不能识别是函数还是id吗?
2018-03-20 回复 有任何疑惑可以回复我~
#2

努力让世界更美好 回复 阿宅娘 提问者

两个同名了,我在opra下就不能正确识别,其他未试,故说有些浏览器不能破解识别…… 另外用setIntervar();来实现你的要求的话可改为如下: var i; function Clock(){ var time=new Date(); document.getElementById("clock").value = time; } function stop(){ i = setInterval("Clock()",1000); }
2018-03-21 回复 有任何疑惑可以回复我~
#3

努力让世界更美好 回复 努力让世界更美好

只是start按钮的函数就直接用JS中的stop就行
2018-03-21 回复 有任何疑惑可以回复我~
#4

阿宅娘 提问者 回复 努力让世界更美好

恩恩,这个方法我get到了,就是奇怪为什么onclick="Clock()"没执行,现在知道是同名导致的,下次就得注意点
2018-03-21 回复 有任何疑惑可以回复我~
查看1条回复

你的<input type="button" value="Start" onclick="clock()"/>中表示只运行clock()这个function一次,而function中并不包含setInterval方法。

我将<input type="button" value="Start" onclick="clock()"/>改成<input type="button" value="Start" onclick="i"/>就可以运行了,你试试。

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

阿宅娘 提问者

我理解是只会运行一次,但实际是一次都没运行。按道理,我暂停后,再点击start会执行一次clock(),获取到当前时间,之后就不执行了,但现在我点击一次start,没有执行啊?就是想知道为什么不执行 改成 onclick="i"也不能运行
2018-03-20 回复 有任何疑惑可以回复我~
#2

corbet

补充一下,我说的onclick=“i”是错误,onclick是点击事件,只能调用函数,所以办法是需要另写一个开始setInterval的函数。
2018-03-20 回复 有任何疑惑可以回复我~
#3

阿宅娘 提问者 回复 corbet

谢谢,我弄明白了
2018-03-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

start按钮中,为什么写onclick="clock()"不起效,而是要重新定义一个函数才起效呢

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