Как приостановить setInterval при наведении на кнопку?

Имеется функция:
async function elUp(selector) {
  try {
    var html = await (await fetch(location.href)).text();
    var newdoc = new DOMParser().parseFromString(html, 'text/html');
    document.querySelector(selector).outerHTML = newdoc.querySelector(selector).outerHTML;
    return true;
  } catch(err) {return false;}
}

и собственно имеется сам window.setInterval("elUp('#reload')", 1000); который обновляет к примеру блок <div id="reload"></div>

Вопрос, как при наведении курсора на кнопку приостановить выполнение setInterval, а потом, когда курсор убран, запускать?

P.S. Кнопка находится внутри блока #reload
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
sasmoney
@sasmoney
// Создание переменной для хранения идентификатора интервала
let intervalId;

// Функция, которую вы хотите выполнить внутри setInterval
function updateElement(selector) {
  // Ваш код обновления элемента
  console.log('Обновление элемента:', selector);
}

// Функция для приостановки выполнения setInterval
function pauseInterval() {
  clearInterval(intervalId);
}

// Функция для возобновления выполнения setInterval
function resumeInterval(selector) {
  intervalId = setInterval(() => {
    updateElement(selector);
  }, 1000);
}
// Обработчик события наведения курсора на кнопку
document.querySelector('#reload').addEventListener('mouseenter', () => {
  pauseInterval();
});

// Обработчик события убирания курсора с кнопки
document.querySelector('#reload').addEventListener('mouseleave', () => {
  resumeInterval('#reload');
});

// Запуск интервала при загрузке страницы
resumeInterval('#reload');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
06 мая 2024, в 12:36
30000 руб./за проект
06 мая 2024, в 12:22
5000 руб./за проект
06 мая 2024, в 12:19
1500 руб./в час