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

用javascript编写的一个计时器的一个BUG

用javascript编写的一个计时器的一个BUG

Best_4 2016-04-08 10:53:44
<!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">         <title></title>     </head>     <body>         <script type="text/javascript">             var se,h=0,m=0,s=0,ss=1;             function time_show(){                 if((ss%100)==0) {s+=1;ss=1;}                 if(s>0 && (s%60)==0) {m+=1;s=0;}                 if(m>0 && (m%60)==0) {h+=1;m=0;}                 var t=h+"时"+m+"分"+s+"秒"+ss+"毫秒";                 document.getElementById("showTime").value=t;                 ss++;             }             function startclock() {se=setInterval("time_show()",10);}             function pauseclock() {clearInterval(se);}             function stopclock() {clearInterval(se);ss=1;h=m=s=0;}         </script>         <input name="s" type="button" value="开始计时" onclick="startclock()" />         <input name="s" type="button" value="暂停计时" onclick="pauseclock()" />         <input name="s" type="button" value="停止计时" onclick="stopclock()" />         <input type="text" id="showTime" value="0时0分0秒0毫秒" />     </body> </html>为什么多次按“开始计时”按钮后,计时速度会加快,而且不能暂停计时了,这是怎么回事?
查看完整描述

1 回答

已采纳
?
走向流沙

TA贡献45条经验 获得超23个赞

因为你点击一次开始按钮,就执行一次你的定时器函数,你疯狂的点,就疯狂的执行,疯狂的叠加,嘿嘿嘿。。。

你可以设定点击一次开始按钮后,将开始按钮设置为disabled为true,这样就无法点击他了,然后再设置点击暂停和停止按钮的时候,将开始按钮的disabled 设置为false,这样就比较好的实现了你需要的定时器

查看完整回答
1 反对 回复 2016-04-08
  • Best_4
    Best_4
    谢谢,那么还有其他方法如何阻止吗?
  • 走向流沙
    走向流沙
    阻止?首先不知道你点好几次开始的意义何在。。。如果强行要阻止的话,也可以点击一次开始按钮的时候,函数里面添加句 解绑开始按钮的点击事件触发的函数 , 然后点击暂停和停止按钮的时候,重新为开始按钮 绑定计时函数 。
  • 1 回答
  • 0 关注
  • 1357 浏览
慕课专栏
更多

添加回答

举报

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