【问题标题】:clearInterval does not stop setIntervalclearInterval 不会停止 setInterval
【发布时间】:2012-12-05 17:53:29
【问题描述】:

我有 1 个可以打开和关闭的按钮: 按钮打开-> onrepeat = true 按钮关闭 -> onrepeat = false

如果 onrepeat 为真,setinterval to 启动它就可以了。如果 onrepeat 为假,我希望它清除间隔。

我的清除间隔并没有停止间隔,它只是继续:

 function checkRepeat() {

      var int = setInterval(repeat, 6000);

      if (onrepeat === false) {
          $("#repeat_toggle").attr("class", "repeat_button");

          repeat();
          int;

          onrepeat = true;

      }

      else {

          clearInterval(int);
          $("#repeat_toggle").attr("class", "repeat_off_button");
          onrepeat = false;

       }


  }

知道有什么问题吗?

【问题讨论】:

    标签: javascript setinterval clearinterval


    【解决方案1】:

    int 作用于函数。每次拨打checkRepeat时都会重置

    您需要将其范围限定在函数之上。

    【讨论】:

    • 如果我把它限定出来,即使函数没有被调用,它也会执行,不是吗?
    • @user1783490 — 将var int 放在外面,而不是int = setInterval(repeat, 6000);(留在里面)。
    • 你也可以做console.log(int),获取计数器的id,这些id需要匹配setInerval生成并传递给clearInterval
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多