Правильный способ установить Interval и 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 ответа
setInterval()
Функция возвращает идентификатор. Это то, что вы хотите назначить 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, а не переменную funciton SetInterval в clearInterval. Обратитесь сюда.
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)
});
Вы можете использовать этот пример setInterval() из w3School здесь. В основном вы используете синтаксис, например:
var yourIntervalVariable = setInterval(function(){
// do something here..
}, 1000);
И тогда вы можете использовать clearInterval() для переменной следующим образом:
clearInterval(yourIntervalVariable);