setInterval和clearInterval。斯马斯错了

时间:2017-09-24 17:47:51

标签: javascript setinterval clearinterval

所以,我用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 我按下“保持”按钮,它的效果很好。然后我点击“继续”,这也很好用。然后我再次单击“保持”...它不起作用。 我想感谢任何帮助和任何建议。

2 个答案:

答案 0 :(得分:3)

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

var interval = setInterval(myTimer, 1000);

function myTimer() {
    // ...
}

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

您的变量仍然包含旧间隔的ID,这使clearInterval(myVar)不执行任何操作。

答案 1 :(得分:0)

使用此代码,您需要定义变量

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