2015-03-17 2 views
0

Я надеюсь внедрить поисковую систему, которая запускает запрос ajax, чтобы автоматически получать результаты поиска. Однако мне бы хотелось только сделать это: пользователь «закончил печатать» (после задержки 2 секунды).jquery queue для автоматического поиска существующих пользователей

Я думал, что правильным способом обойти это будет использование очереди. Очистка очереди при вводе новой буквы, чтобы гарантировать, что установка может быть остановлена, аналогично stop() при анимации. но я не могу его правильно реализовать.

 $('.js-header-search-box').on('input propertychange paste', function() { 
     // stop current queued search 
     $('.js-header-search-box').dequeue(); 
     // search 
     var q = $(this).val(); 
     $('.js-header-search-box').queue(function() { 
      setTimeout(SearchAccounts(q), 2000); 
     }) 
    }); 
+0

Параметр '.queue()' первоначально разработан для использования Fx-функций в качестве анимации и эффектов и не требует asynchronus создание очередей – empiric

ответ

3
$('.js-header-search-box').on('input propertychange paste', function (event) { 
    // stop current queued search 
    if (event.target.timeout)// false if undefined 
     clearTimeout(event.target.timeout); 

    // search 
    var q = $(event.target).val(); 
    event.target.timeout = setTimeout(function() { 
     SearchAccounts(q) 
    }, 2000); 
}); 
+0

Да, вот это демо: HTTP: // jsfiddle. net/071dL3bs/ – blex

+0

работал блестяще, спасибо! – LiamHT

Смежные вопросы