Javascript 执行时计时器不停止";clearInterval“;多次
我在JavaScript中使用setInterval创建了一个计时器,下面是我的resetButton代码。当用户单击一次重置按钮时,一切都按计划进行。但是,当用户单击重置按钮两次或两次以上时,当单击重置按钮时,计时器不会停止 我试着让按钮在点击多次时不会注册多次,但这并没有解决问题 有没有关于它为什么这样做的想法和解决方案 多谢各位Javascript 执行时计时器不停止";clearInterval“;多次,javascript,Javascript,我在JavaScript中使用setInterval创建了一个计时器,下面是我的resetButton代码。当用户单击一次重置按钮时,一切都按计划进行。但是,当用户单击重置按钮两次或两次以上时,当单击重置按钮时,计时器不会停止 我试着让按钮在点击多次时不会注册多次,但这并没有解决问题 有没有关于它为什么这样做的想法和解决方案 多谢各位 $("#reset").click(function (event) { if (!event.detail || event.detail == 1)
$("#reset").click(function (event) {
if (!event.detail || event.detail == 1) {
console.log("test");
promptId = 0;
userMinutes = 0;
//stops timer
clearInterval(interval);
setTimer(0);
timerDropdown.selectedIndex = 0;
textDropdown.selectedIndex = 0;
matchedText(true);
wordsPerMinute();
originTextContent.innerHTML = "Please Select Your Prompt";
testArea.value = "";
// allows users to type after textArea is disabled
testArea.disabled = false;
testWrapper.style.border = "10px solid grey";
if (warningMessage.firstChild)
warningMessage.removeChild(warningMessage.firstChild);
startDefaultTimer();
}
});
function startDefaultTimer() {
testArea.addEventListener(
"input",
() => {
if (promptId != 0 && userMinutes != 0) {
// Converting minutes to milliseconds
startTimer(userMinutes * 60 * 100);
}
},
{ once: true }
);
}
请删除多余的代码,直到你有一个最小的工作示例,在开发工具中逐步完成,如果你仍然卡住,请准确解释实际与预期的结果是什么,以及你试图解决它的原因。发布
startDefaultTimer()的代码
您可能没有将intervalId赋值给全局变量或其他对象。很抱歉,我添加了startDefaultTimer()。我将间隔设置为全局变量,因为它需要在不同的函数中使用。您的单击事件总是将新的事件侦听器添加到input
,并且它会堆叠,因此多次调用startTimer
,与您指定的问题无关,但您的毫秒转换代码中有一个输入错误(!)userMinute
应该乘以60*1000
而不是60*100
。