На данный вопрос уже ответили:
Начало выполнения функции по таймеру бездействия
1 ответ
Есть строка поиска. Хочу чтобы при окончании ввода в строку через секунду запускалась(1 раз) функция. Есть код:
$('.block input[name=search]').on("input", function () {
setTimeout(findUser, 1000);
function findUser() {
alert("Hello");
}
})
Код работает неправильно. Он запускает функцию столько раз сколько я нажму, а мне нужно при окончании ввода и 1 раз.
Если есть свои варианты кода то пожалуйста
Ответ
Для того, чтобы таймер срабатывал один, предыдущий таймер должен быть остановлен с помощью функции clearTimeout
Для этого нужно сохранить предыдущий таймер в переменную:
var timer = null;
$('.block input[name=search]').on("input", function () {
clearTimeout(timer);
timer = setTimeout(findUser, 1000);
function findUser() {
alert("Hello");
}
})
Комментариев нет:
Отправить комментарий