Есть какой-то простой плагин , который я сделал, который делает именно это. Он требует гораздо меньше кода, чем некоторые предлагаемые решения, и он очень легкий (~ 0,6 КБ)
Сначала вы создаете Bid
объект, который может быть bumped
в любое время. Каждый удар будет задерживать срабатывание Bid обратный вызов для следующего заданного количества времени.
var searchBid = new Bid(function(inputValue){
//your action when user will stop writing for 200ms.
yourSpecialAction(inputValue);
}, 200); //we set delay time of every bump to 200ms
Когда Bid
объект готов, нам нужно как-то bump
. Давайте прикрепим натыкаясь к keyup
event
.
$("input").keyup(function(){
searchBid.bump( $(this).val() ); //parameters passed to bump will be accessable in Bid callback
});
Что здесь происходит:
Каждый раз, когда пользователь нажимает клавишу, ставка «задерживается» (повышается) на следующие 200 мс. Если 200 мс пройдет без повторного «удара», обратный вызов сработает.
Кроме того, у вас есть 2 дополнительные функции для остановки ставки (если пользователь нажал клавишу esc или, например, нажал кнопку ввода снаружи) и для немедленного завершения и запуска обратного вызова (например, когда пользователь нажал клавишу ввода):
searchBid.stop();
searchBid.finish(valueToPass);