Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 执行时计时器不停止";clearInterval“;多次_Javascript - Fatal编程技术网

Javascript 执行时计时器不停止";clearInterval“;多次

Javascript 执行时计时器不停止";clearInterval“;多次,javascript,Javascript,我在JavaScript中使用setInterval创建了一个计时器,下面是我的resetButton代码。当用户单击一次重置按钮时,一切都按计划进行。但是,当用户单击重置按钮两次或两次以上时,当单击重置按钮时,计时器不会停止 我试着让按钮在点击多次时不会注册多次,但这并没有解决问题 有没有关于它为什么这样做的想法和解决方案 多谢各位 $("#reset").click(function (event) { if (!event.detail || event.detail == 1)

我在JavaScript中使用setInterval创建了一个计时器,下面是我的resetButton代码。当用户单击一次重置按钮时,一切都按计划进行。但是,当用户单击重置按钮两次或两次以上时,当单击重置按钮时,计时器不会停止

我试着让按钮在点击多次时不会注册多次,但这并没有解决问题

有没有关于它为什么这样做的想法和解决方案

多谢各位

$("#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