setInterval 和 clearInterval 的正确方法
Proper way to setInterval and 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)
});
谢谢!
setInterval()
函数returns一个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)
});
您需要将setInterval对象赋值给一个变量传给clearInterval,而不是将SetInterval的函数变量传给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)
});
您可以使用 w3School here 中的这个 setInterval() 示例。基本上你使用的语法例如:
var yourIntervalVariable = setInterval(function(){
// do something here..
}, 1000);
然后您可以像这样在变量上使用 clearInterval():
clearInterval(yourIntervalVariable);
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)
});
谢谢!
setInterval()
函数returns一个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)
});
您需要将setInterval对象赋值给一个变量传给clearInterval,而不是将SetInterval的函数变量传给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)
});
您可以使用 w3School here 中的这个 setInterval() 示例。基本上你使用的语法例如:
var yourIntervalVariable = setInterval(function(){
// do something here..
}, 1000);
然后您可以像这样在变量上使用 clearInterval():
clearInterval(yourIntervalVariable);