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)
});
谢谢!
答案 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);