javascript - 清除间隔()不工作

标签 javascript timer

Session length 是定时器的开始时间,默认为 25。 isEven 用于启动/停止定时器,如果 isEven 为 false,则定时器应该启动,如果为奇数,则应该命中clearInterval,由于某种原因没有停止执行tick()函数(它对计时器进行倒计时)。

var count = 0;

function countdown(sessionLength) {
  var minutes = sessionLength - 1;
  var seconds = 60;
  var isEven = false;
  count++;

  if (count % 2 == 0) {
    isEven = true;
  } else {
    isEven = false;
  }

  var myVar = setInterval(tick, 1000);

  if (isEven == false) {
    function tick() {
      if (seconds > 0) {
        seconds--;
      } else {
        minutes--;
        seconds = 59;
      }

      if (minutes > 0) {
        document.getElementById("time").innerHTML =
          minutes.toString() + ":" + (seconds < 10 ? "0" : "") + seconds.toString();
      } else {
        document.getElementById("time").innerHTML =
          "0:" + (seconds < 10 ? "0" : "") + seconds.toString();
      }
    }
  } else {
    console.log("reached");
    clearInterval(myVar);
  }
};

最佳答案

tick() 函数声明移到 if block 之外

关于javascript - 清除间隔()不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34688688/

相关文章:

java - 定时器的问题 - android

Javascript - 动画仅在第一次按下按钮时有效

javascript - 如何使用外部javascript延迟图像显示

c - 在 C Mongoose 操作系统中的特定时间打开 2 个 LED

javascript - JavaScript 中只能有一个超时吗?

windows-phone-7 - 在给定延迟后执行方法的简单方法?

javascript - Uncaught TypeError : _this. props.onSubmit 在使用 redux-form 时不是一个函数

javascript - 将带有方括号的字符串转换为方括号内容合并的列表

javascript - 当在单元格或另一个单元格外部单击时,从单元格中删除输入元素并保留值

javascript - Redux 和 immutable js,我在尝试使用 immutable 后失去了状态