我有一个计时器的代码,我正在尝试使其停止在0:0处,但它一直在变为负数。解决此问题的任何想法都会有所帮助。
<html>
<head>
<script>
function startTimer(m,s)
{
document.getElementById('timer').innerHTML= m+":"+s;
if (s==0)
{
if (m == 0)
{
clearTimeout(t);
}
else if (m != 0)
{
m = m-1;
s = 60;
}
}
s = s-1;
t=setTimeout(function(){startTimer(m,s)},1000);
}
</script>
</head>
<body>
<button onClick = "startTimer(0,5)">Start</button>
<p id = "timer">00:00</p>
</body>
</html>
最佳答案
您总是在startTimer
的末尾触发新的计时器,即使您达到零也是如此。快速解决方案是在其后添加return;
而不是clearTimeout(t);
。