clearInterval()不会停止setInterval()javascript

时间:2015-11-23 03:18:53

标签: javascript

我试图阻止我的setInterval(),但我尝试过的任何工作都没有。

我需要在clearInterval中放置什么来阻止setInterval()功能运行。

html

<p>PLease enter a time(secs) interval to have the divs change colors.</p>
Interval: <input type='number' id='interval' min='1' required>
<input type='button' value='Set Time' onclick='setTime()'>
<br><br>
<p> click the button below to stop it.</p>
<button onclick="clearInterval(x)">Stop it</button>

的javascript

function setTime(){
    var userTime = document.getElementById('interval').value * 1000;

    if (userTime != null && userTime > 0 ){
        var x = setInterval(colorChangeTime, userTime);
    } else {
        alert("Please enter a number"); 
    }

clearInterval(x)唯一得到的是控制台错误&#34; x未定义&#34;。我尝试了其他各种各样的东西,但没有任何工作可做。

1 个答案:

答案 0 :(得分:1)

您正在将局部值保存在局部变量中,因此在函数外部不可用。如果你想在其他函数中使用它,那么你可以调用clearInterval(),那么你需要将它保存在可用的地方,而不是局部变量。这些选项包括更高范围的公共变量,某些持久对象的属性等等......

例如:

var interval;
function setTime(){
    var userTime = document.getElementById('interval').value * 1000;

    if (userTime != null && userTime > 0 ){
        interval = setInterval(colorChangeTime, userTime);
    } else {
        alert("Please enter a number"); 
    }
}

function clearTime() {
    clearInterval(interval);
}