gpt4 book ai didi

javascript - clearTimeout() 不清除定时器

转载 作者:太空宇宙 更新时间:2023-11-03 22:39:15 25 4
gpt4 key购买 nike

function countDown(secs,elem)
{
var element = document.getElementById(elem);
element.innerHTML = "Game ends in " + secs + " seconds!";
if(secs<1)
{
clearTimeout(timer);
document.getElementById('gameContent').style.display='none';

}
secs--;
var timer = setTimeout('countDown('+secs+',"'+elem+'")',1000);

}

<div class="timerCount" id="status"></div>
<script>countDown(5,"status");</script>

我的计时器在 5 秒时正确启动并递减。我的游戏 div 在计时器达到 0 后隐藏,但计时器不会清除并结束,而是变为负值。请我的代码中的错误以停止计时器并清除它

最佳答案

如果您只使用 setInterval 并执行如下操作,效率会更高:

function countDown(secs, elem) {
var interval;
var element = document.getElementById(elem);
var timer = setInterval(function() {
secs--;
update();
if (secs < 1) {
clearInterval(timer);
}
}, 1000);

function update() {
if (secs > 0) {
element.innerHTML = "Game ends in " + secs + " seconds!";
} else {
document.getElementById('gameContent').style.display = 'none';
}
}
update();

}

countDown(5, "status");
<div id="gameContent">
<h1>Game</h1>
<div class="timerCount" id="status"></div>
</div>

关于javascript - clearTimeout() 不清除定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44727946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com