Остановить вызов setInterval в JavaScript
Я использую setInterval(fname, 10000);
для вызова функции каждые 10 секунд в JavaScript. Возможно ли остановить вызов этой функции при наступлении какого-либо события?
Я хочу, чтобы пользователь мог остановить повторное обновление данных.
2 ответ(ов)
Вы можете создать новую переменную и увеличивать её значение с помощью оператора ++
(увеличение на единицу) каждый раз, когда она выполняется. Затем вы можете использовать условный оператор, чтобы завершить выполнение:
var intervalId = null;
var varCounter = 0;
var varName = function(){
if(varCounter <= 10) {
varCounter++;
/* ваш код размещается здесь */
} else {
clearInterval(intervalId);
}
};
$(document).ready(function(){
intervalId = setInterval(varName, 10000);
});
Надеюсь, это поможет и будет правильным.
Конечно! Вот перевод с объяснением на русском языке в стиле ответа на StackOverflow:
const interval = setInterval(function() {
const checkParticlesjs = document.querySelector('.success_class'); // Получаем элемент с классом success_class со страницы
if (checkParticlesjs) { // Проверяем, существует ли элемент с классом success_class
fbq('track', 'CompleteRegistration'); // Вызываем событие Facebook
clearInterval(interval); // Останавливаем интервал
}
}, 2000); // Повторяем каждые 2 секунды
Этот код создает интервал, который каждые 2 секунды проверяет наличие элемента с классом success_class
на странице. Как только такой элемент появляется, вызывается событие CompleteRegistration
для Facebook (что может быть полезно для аналитики), и интервал останавливается, чтобы избежать лишних проверок.
event.preventDefault() против return false: в чем разница?
Получение ID элемента, вызвавшего событие
Как запустить JavaScript после загрузки страницы?
Преимущества addEventListener по сравнению с onclick
Что такое всплытие и перехват событий?