设置间隔和清除间隔。出事了

setInterval and clearInterval. Smth went wrong

所以,我已经用 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 我按下 "Hold" 按钮,效果很好。然后我单击 "Continue",这也很好用。然后我再次单击 "Hold"... 但它不起作用。 我非常感谢任何帮助和建议。

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

var interval = setInterval(myTimer, 1000);

function myTimer() {
    // ...
}

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

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

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

   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);
    }