Как осуществить задержку при нажатии клавиши с помощью jQuery?

К примеру у вас есть поле поиска, которое обрабатывается при каждом нажатии клавиши клавиатуры. Если кто-то захочет написать слово Windows, AJAX запрос будет отправлен по следующим фрагментам: W, Wi, Win, Wind, Windo, Window, Windows. Проблема?.

Для решения нашей задачи можете воспользоваться функцией, которая вызовет какой-то метод после определённой задержки, как только пользователь закончит ввод:

var delay = (function(){
  var timer = 0;
  return function(callback, ms){
    clearTimeout (timer);
    timer = setTimeout(callback, ms);
  };
})();

Использование:

$('input').keyup(function() {
    delay(function(){
      alert('Time elapsed!');
    }, 1000 );
});

Если не хотите заморачиваться с своим собственным кодом, то можете воспользоваться соответствующим jQuery плагином Typewatch.

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://stackoverflow.com/questions/1909441/jquery-keyup-delay
Перевел: Станислав Протасевич
Урок создан: 14 Октября 2015
Просмотров: 13869
Правила перепечатки


5 последних уроков рубрики "HTML и DHTML"

^ Наверх ^