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
停止计时器