17

Остановить вызов setInterval в JavaScript

16

Я использую setInterval(fname, 10000); для вызова функции каждые 10 секунд в JavaScript. Возможно ли остановить вызов этой функции при наступлении какого-либо события?

Я хочу, чтобы пользователь мог остановить повторное обновление данных.

2 ответ(ов)

0

Вы можете создать новую переменную и увеличивать её значение с помощью оператора ++ (увеличение на единицу) каждый раз, когда она выполняется. Затем вы можете использовать условный оператор, чтобы завершить выполнение:

var intervalId = null;
var varCounter = 0;
var varName = function(){
     if(varCounter <= 10) {
          varCounter++;
          /* ваш код размещается здесь */
     } else {
          clearInterval(intervalId);
     }
};

$(document).ready(function(){
     intervalId = setInterval(varName, 10000);
});

Надеюсь, это поможет и будет правильным.

0

Конечно! Вот перевод с объяснением на русском языке в стиле ответа на 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 (что может быть полезно для аналитики), и интервал останавливается, чтобы избежать лишних проверок.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь