setInterval和clearInterval的正确方法

时间:2017-06-15 02:21:23

标签: javascript setinterval clearinterval

JS的相对新人,试图绕过日程安排。此代码将启动附加但不会停止。我很确定问题是'clearInterval'需要解决一个已经分配了'setInterval'函数的变量。我似乎无法掌握的是如何恰当地说出这一点。

var hmm = function appendStuff(){
    $("p").append("<b>Appended text</b>");
};
$("#start").click(function() {   
    console.log("startClicked");  // working... 
    window.setInterval(hmm, 1000) // working...
}); 
$("#stop").click(function() {   
    console.log("stopClicked");  // working...  
    window.clearInterval(hmm)
}); 

谢谢!

3 个答案:

答案 0 :(得分:1)

setInterval()函数返回一个ID。这是您要分配给hmm的内容。

此外,setInterval()的第一个参数是您希望每个间隔调用的函数。

var hmm = null;
function appendStuff(){
    $("p").append("<b>Appended text</b>");
};
$("#start").click(function() {   
    console.log("startClicked");  // working... 
    hmm = window.setInterval(appendStuff, 1000) // working...
}); 
$("#stop").click(function() {   
    console.log("stopClicked");  // working...  
    window.clearInterval(hmm)
}); 

答案 1 :(得分:1)

您需要将setInterval对象分配给变量并将其传递给clearInterval,而不是将SetInterval的funciton变量传递给clearInterval。请参阅here

var hmm = function appendStuff(){
    $("p").append("<b>Appended text</b>");
};
var interval;
$("#start").click(function() {   
    console.log("startClicked");  // working... 
    interval = window.setInterval(hmm, 1000) // working...
}); 
$("#stop").click(function() {   
    console.log("stopClicked");  // working...  
    window.clearInterval(interval)
}); 

答案 2 :(得分:0)

您可以使用w3School here中的此setInterval()示例。基本上你使用语法,例如:

var yourIntervalVariable = setInterval(function(){
  // do something here..
}, 1000);

然后你可以对变量使用clearInterval(),如下所示:

clearInterval(yourIntervalVariable);