【问题标题】:setInterval and clearInterval. Smth went wrong设置间隔和清除间隔。出了错
【发布时间】:2017-09-25 02:24:32
【问题描述】:

所以,我已经用 setInterval 初始化了我的 var。 我想停下来开始它。我希望尽可能多地进行这种控制。 这是代码

<script>
var myVar = setInterval(myTimer, 1000);

function myTimer() {
    var d = new Date();
    var t = d.toLocaleTimeString();
    document.getElementById("demo").innerHTML = t;
}

function myStopFunction() {
    clearInterval(myVar);
}
function myStartFunction() {
    setInterval(myTimer, 1000);
    //setInterval(myVar, 1000);
}
</script>

jsfiddle.net/adeneo/g8jmccfu/1 我按下“保持”按钮,效果很好。然后我点击“继续”,这也很好用。然后我再次单击“保持”......它不起作用。 我很感激任何帮助和任何建议。

【问题讨论】:

标签: javascript setinterval clearinterval


【解决方案1】:

您忘记将新的计时器 ID 重新分配给 myVar(我称之为 interval):

var interval = setInterval(myTimer, 1000);

function myTimer() {
    // ...
}

function myStopFunction() {
    clearInterval(interval);
}
function myStartFunction() {
    interval = setInterval(myTimer, 1000);
}

您的变量仍然包含旧区间的 ID,这使得 clearInterval(myVar) 什么也不做。

【讨论】:

    【解决方案2】:

    使用这段代码,需要定义一个变量

       var myVar;
        function myTimer() {
            var d = new Date();
            var t = d.toLocaleTimeString();
            document.getElementById("demo").innerHTML = t;
        }
    
        function myStartFunction() {
            myVar = setInterval(myTimer, 1000);
        }
    
        myStartFunction();
    
        function myStopFunction() {
            clearInterval(myVar);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多