jquery键盘暂停捕获

我正在捕捉关键事件,这些事件会调用每个键盘。

jQuery('#Search').keyup(function() { }); 

但我需要的东西就像当用户连续输入字符并给出第5个字符或第n个字符的传递时,只有我想要触发ajax调用。 在这里我们可以使用超时function来捕获事件,但每个按键都会调用超时function,所以再次发生同样的事情

如果用户在暂停后再次开始输入,那么它将再次触发事件/ ajax调用但仅在某个暂停之后。

这里我们需要中止以前的事件或ajax调用,因为再次用户开始搜索。

所以我用.abort(); 用于中止先前调用的函数。

是否有更好的方法在jquery中的一段时间后捕获事件。 请指教我,

提前致谢

 var search = $('#Search'), search_delay = 100; search.keyup(function() { var request = search.data('request'); if(request) { // if request is running - abort it request.abort(); search.data('request', null); } clearTimeout(search.data('timer')); // if timer is running - stop it search.data('timer', setTimeout(function(){ // add your ajax call here or pass a reference // to the function that will handle the ajax call search.data('request', $.ajax(...)); }, search_delay); }); 

您可以使用jQ data API来存储对jQuery 1.5 jqXHR对象中的引用的引用,以便能够abort请求和计时器,以便您可以使用clearTimeout停止计时器