Javascript setInterval()在clearInterval()之后不工作
我目前正在用Javascript制作一个带有开始和停止按钮的pomodoro计时器。在使用clearInterval()停止倒计时后,使用setInterval()启动倒计时时遇到了问题。我有两个函数,一个在单击按钮时调用,一个使用setInterval()启动倒计时,另一个使用clearInterval()停止倒计时。我不确定发生了什么,下面是我的实现:Javascript setInterval()在clearInterval()之后不工作,javascript,electron,Javascript,Electron,我目前正在用Javascript制作一个带有开始和停止按钮的pomodoro计时器。在使用clearInterval()停止倒计时后,使用setInterval()启动倒计时时遇到了问题。我有两个函数,一个在单击按钮时调用,一个使用setInterval()启动倒计时,另一个使用clearInterval()停止倒计时。我不确定发生了什么,下面是我的实现: var startTime = 25; // this value will change depending on what the us
var startTime = 25; // this value will change depending on what the user selects, default value is 25:00
var time = startTime * 60; //number of seconds total
var intervalID; //used for setInterval()
var pomodoroTimer = document.getElementById('pomodoro-timer');
function updateTimer(){
let minutes = Math.floor(time/60);
let seconds = time % 60;
minutes = minutes < 10 ? '0' + minutes : minutes;
seconds = seconds < 10 ? '0' + seconds : seconds;
pomodoroTimer.innerHTML = minutes + ':'+ seconds;
time--;
}
function startTimer(){
if(!intervalID){ // to prevent multiple setIntervals being queued up
updateTimer(); // call this once to stop clock from taking too long on first use of the setInterval function
intervalID = setInterval(updateTimer, 1000);
}
}
function stopTimer(){
clearInterval(intervalID);
}
var startTime=25;//此值将根据用户选择的内容进行更改,默认值为25:00
var时间=开始时间*60//总秒数
var有效期//用于setInterval()
var pomodoroTimer=document.getElementById('pomodoro-timer');
函数updateTimer(){
分钟=数学楼层(时间/60);
让秒=时间%60;
分钟=分钟<10?'0'+分钟:分钟;
秒=秒<10?'0'+秒:秒;
pomodoroTimer.innerHTML=分钟+':'+秒;
时间--;
}
函数startTimer(){
如果(!intervalID){//以防止多个设置间隔排队
updateTimer();//调用此函数一次,以避免在第一次使用setInterval函数时时钟占用的时间过长
intervalID=setInterval(updateTimer,1000);
}
}
函数stopTimer(){
clearInterval(intervalID);
}
提示:clearInterval(intervalID)
不更改变量intervalID
的值,您忘记添加intervalID=0代码>后清除间隔(有效期)代码>(JavaScript没有out或ref参数)谢谢jaromanda X和nick,您的信息让它工作了!我不知道简单地使用clearInterval()不会改变值。
function stopTimer(){
clearInterval(intervalID);
intervalID = undefined;
}