Как выполнить функцию, если в течении 3 сек. не было действий?
Требуется: при клике на поле, если в течении 3 сек больше не кликали, вывести сообщение, но если кликнули еще раз, то отменить вывод и выводить сообщение через 3 сек, относительно последнего клика.
Код, который не работает:
document.getElementById('ajax_send_li').addEventListener('click', ()=> {
clearTimeout(timer_li);
var timer_li = setTimeout(()=> {
alert('Последний клик был 3 сек назад');
}, 1000);
});
Желательно на чистом JS
Ответы (1 шт):
Автор решения: Yaant
→ Ссылка
Код почти работает, достаточно вынести объявление переменной во внешний скоуп:
var timer_li;
document.getElementById('ajax_send_li').addEventListener('click', ()=> {
clearTimeout(timer_li);
timer_li = setTimeout(()=> {
console.log('Последний клик был 3 сек назад');
}, 3000);
});
<input id="ajax_send_li" type="button" value="click me">