以下程式碼是個簡易的計時器,可是連續點擊計時按鈕兩次以上後,會導致計時加速問題,且無法暫停(停不下來~~),隱藏在其中的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>
雷雷
計時的函數裡判斷
times
如果有值,直接返回;或者有值的情况下先
clearInterval
然后再重新setInterval
點2次等於設定了2個計時器,所以會坑。