javascript - undefined variable 的clearInterval问题原因

标签 javascript jquery

这是我的代码(在 button.click() 函数中)

if(inBreak === true) {
      inBreak = false;
      var timer = setInterval(function() {
        if(seconds == 0) {
          console.log(minutes);
          minutes -= 1;
          seconds = 59;
        } else {
          seconds -= 1;
        }
        $('.minutes').text(minutes);
        $('.seconds').text(seconds);
      }, 1000);
    } else {
      inBreak = true;
      console.log(timer);
      clearInterval(timer);
    }

问题是 clearInterval(timer) 不工作,因为没有定义计时器,但我在第一次单击(并使用该函数)时定义了它。

那么您有实现该目标的想法吗? 我尝试用 let/const 代替 var 但还是没用 :(s

最佳答案

timer 是局部变量,在函数结束时销毁。

将其存储在其他地方(例如作为全局变量):

window.myTimer = setInterval(function() {
....

clearInterval(window.myTimer);

关于javascript - undefined variable 的clearInterval问题原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52078051/

相关文章:

javascript - 取消隐藏表格行会导致表格跳转,如何解决这个问题?

jquery - jqGrid:默认情况下 "inline edit mode"中的所有行

javascript - 寻找一种方法在spectrumjs中具有相同类名的两个不同按钮上触发单独的事件

JavaScript : what does it mean to have brackets () after array[]?

c# - $.post 中的 URL 包含多个网站

javascript - 如何在 raphaeljs 中使用 rect 元素剪辑内容?

jquery - 查找 div 中具有特定类的元素数量

javascript - 滚动到另一个 DIV 时更改一个 DIV 的 css

javascript - 无法通过 angularjs 服务中的 $http(AJAX) 发送请求

javascript - 使用js将HTML代码附加到元素