Я не понимаю, clearInterval()
У меня есть кнопки play и skip для массива JSON, работающие нормально:
JQuery:
$(function() {
// Fetch the initial image
fetchImage(index);
// Event listeners
$("#play").click(function() { fetchImage(next); setInterval(function() { fetchImage(next); }, 1000); return false;});
$("#stop").click(function() { clearInterval(xxx); return false;});
$("#prev").click(function() { fetchImage(prev); return false;});
$("#next").click(function() { fetchImage(next); return false;});
});
ххх предпочтительно должна быть переменной, которую я читаю. setInterval() возвращает значение. Я прочитал несколько примеров. Я не был успешным.
Тестовая страница: http://flamencopeko.net/icons_cogo_16.php
JSON вещь: http://flamencopeko.net/icons_ajax.php
Источник: http://flamencopeko.net/icons_cogo_16.txt
Источник: http://flamencopeko.net/icons_ajax.txt
4 ответа
Вы должны сначала назвать свой интервал, чтобы иметь возможность его очистить. Вот что я хотел бы сделать с вашим кодом:
var newInterval;
// Event listeners
$("#play").click(function() {
fetchImage(next);
newInterval = setInterval(function() {
fetchImage(next);
}, 1000);
return false;
});
$("#stop").click(function() {
clearInterval(newInterval);
return false;
});
Вам нужно присвоить функцию setInterval переменной
var interval = setInterval(function () {});
clearInterval(interval)
Я предполагаю, что это то, что вы после.
Ты дал ответ сам
"возвращает значение"
так что пусть он возвращает псевдоним для значения, так называемой переменной, в идеале вы объявляете его раньше, чтобы он не выдавал неопределенное исключение, когда вы пытаетесь очистить его, если #play не был нажат до
var xxx;
...
$("#play").click(function() { fetchImage(next);xxx=setInterval(function() { fetchImage(next); }, 1000); return false;});
...
clearInterval(xxx)...
Вы когда-нибудь использовали одно из тех устройств "возьми число", которые выдавливали пронумерованные листки бумаги?
Возвращаемое значение из setInterval()
это как "Повторяющийся идентификатор задачи №".
Вы не должны заботиться о том, насколько велико число, но вы должны хранить его где-нибудь, а затем вы можете передать его обратно в clearInterval()
сообщить системе, какую задачу остановить.