在尝试清除代码中的间隔时遇到一些问题。我只需要在它达到0时立即停止它。我也尝试过在函数中设置它,将clearInterval声明为一个变量,但每次我都会感到更加困惑,因为我在控制台日志记录时没有看到任何错误。我在这里做错了什么?提前谢谢。以下是我正在做的:
var timer = 10;
$("#timer").html("Timer");
function timerStart() {
timer--;
$("#timer").html(timer);
}
var intervalId = setInterval(timerStart, 1000);
if(timerStart === 0) {
clearInterval(intervalId);
}
你很接近!
我做了一些更改:
- 将变量声明一起移动
- 不需要手动为初始值设置
.html()
,只需调用timerStart()
即可。然后你可以递减 - 在
timerStart()
方法内部执行timer
检查
var timer = 10;
var intervalId = null;
function timerStart() {
$("#timer").html(timer);
if (timer === 0) {
clearInterval(intervalId);
}
timer--;
}
timerStart();
intervalId = setInterval(timerStart, 1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="timer"></div>
尝试:
var timer = 10;
$("#timer").html("Timer");
var intervalId = setInterval(timerStart, 1000);
function timerStart() {
timer--;
$("#timer").html(timer);
if(timer == 0) clearInterval(intervalId);
}