我试图阻止我的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;。我尝试了其他各种各样的东西,但没有任何工作可做。
答案 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);
}