Задать вопрос
@edshander

Как повторно использовать setTimeout?

Здравствуйте! Подскажите, пожалуйста как сделать чтобы при повторно клике setTimeout снова отрабатывал? Сейчас при первом клике, всё работает как надо, но на повторный таймаут не срабатывает

const defaultText = (el, defaultText) => {
    el.textContent = defaultText;
    el.classList.remove('btn-promo--success');
  }

  btnPromo.forEach(el => {
    el.addEventListener('click', async (event) => {
      event.preventDefault();
      try {
        let textBtn = el.textContent;
        let promo = el.querySelector('.promo').innerHTML;
        el.textContent = 'Промокод скопирован!';
        let timeoutText = setTimeout(defaultText, 1000, el, textBtn);
        el.classList.add('btn-promo--success');
        navigator.clipboard.writeText(promo);
      } catch {
        console.log('Не удалось скопировать')
      }
    });
  })
  • Вопрос задан
  • 205 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
HardBot
@HardBot
back-end, front-end developer
let timeoutText; // за событие клика вынеси
clearTimeout(timeoutText);
timeoutText = setInterval();
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы