O,所以我有一个“实时搜索”ajax 搜索,它当前在每个键上运行 sql 搜索(通过 ajax)。
我更喜欢的是:
在未按下某个键(例如 800 毫秒)后运行 sql 搜索
.
所以我想要一个在按键时启动的计时器, 如果计时器达到 800ms,则调用 ajax, 如果发生新的按键事件,计时器将重新启动
我该怎么做?
(function () {
var theTimeout;
function doSearch() {
// Do Search
};
$('#theField').bind('keyup', function () {
clearTimeout(theTimeout);
theTimeout = setTimeout(doSearch, 800);
});
}())
我遇到了这个问题,我的解决方案是这样的:
var doAjax = 0
$("input#name").keyup(function(){
doAjax++;
setTimeout(function(){
doAjax--;
if(doAjax>=1){
return;
}
$.post("do_ajax", { ...
我不知道这是否是最好的解决方案,但它确实有效:)