Обычно, я установил интервал на переменную и затем очищаю его как var the_int = setInterval(); clearInterval(the_int);
но чтобы мой код работал, я поместил его в анонимную функцию:
function intervalTrigger() {
setInterval(function() {
if (timedCount >= markers.length) {
timedCount = 0;
}
google.maps.event.trigger(markers[timedCount], "click");
timedCount++;
}, 5000);
};
intervalTrigger();
Как я очищаю это? Я дал ему выстрел и попробовал var test = intervalTrigger(); clearInterval(test);
чтобы быть уверенным, но это не работало.
В основном мне нужно это, чтобы прекратить инициировать, после того как мой Google Map нажат, например.
google.maps.event.addListener(map, "click", function() {
//stop timer
});
Метод setInterval
возвращает дескриптор, который можно использовать для очистки интервала. Если вы хотите, чтобы функция возвращала его, вы просто возвращаете результат вызова метода:
function intervalTrigger() {
return window.setInterval( function() {
if (timedCount >= markers.length) {
timedCount = 0;
}
google.maps.event.trigger(markers[timedCount], "click");
timedCount++;
}, 5000 );
};
var id = intervalTrigger();
Затем, чтобы очистить интервал:
window.clearInterval(id);