Задать вопрос
Kreizo
@Kreizo
front-end developer

SetTimeout update?

Суть вопроса такова что есть список товаров где присутствует кнопка удаление и при каждом ее клике появляется кнопка отмены предыдущего удаления товара. В общем проблема в том что каждый раз при удаление запускается функция с таймаутом которая через 10 секунд скрывает эту кнопку. Из-за недоработки кода предыдущий запуск функции с дизпатчем скрывает ее по истечению 10 секунд. Нужно что бы при каждом удаление счетчик скрытия кнопки снова начинал отсчет из 10 секунд.
  • Вопрос задан
  • 159 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
@xutesayor
Похоже вам нужен debounce
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
let btnUndelete = document.querySelector('.btn-undelete')
let undeleteHideTimer = null

function showBtn(){
  if (undeleteHideTimer) clearTimeout(undeleteHideTimer) // сбрасываем предыдущий таймер
  undeleteHideTimer = setTimeout(hideBtn, 10000) // ставим новый
  btnUndelete.styleList.add('visible')
}
function hideBtn(){
  btnUndelete.styleList.remove('visible')
}
Ответ написан
Комментировать
Kreizo
@Kreizo Автор вопроса
front-end developer
спасибо, то что нужно stackoverflow.com/questions/23123138/perform-debou...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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