以下代码是一个简易的计时器,可是连续点击计时按钮两次以上后,会导致计时加速问题,且无法暂停(停不下来~~),隐藏在其中的bug是什么?求解?
<!DOCTYPE html>
<html>
<head>
<title>
计时器
</title>
<style type="text/css">
p {
width: 400px;text-align:center;height: 500px;font-weight: 700;background-color: #ccc;font-size: 400px;margin: 0 auto;
}
</style>
</head>
<body>
<p><font color="red" size="28"></font></p>
<input type="button" value="计时开始⌚️">
<input type="button" value="计时暂停⏸️">
<script type="text/javascript">
//计时开始方法
var i = 0;
var times;
var prebtn = document.getElementsByTagName("input")[0].onclick=function()
{
times = window.setInterval(function(){
i++
document.getElementsByTagName("p")[0].innerHTML=i;
},1000);
}
//计时结束方法
var nextbtn = document.getElementsByTagName("input")[1].onclick=function()
{
var cleartimes = window.clearInterval(times);
}
</script>
</body>
</html>
雷雷
计时的函数里判断
times
如果有值,直接返回;或者有值的情况下先
clearInterval
然后再重新setInterval
点2次等于设定了2个计时器,所以会坑。