延迟jQuery中键输入的ajax调用

延迟jQuery中键输入的ajax调用,jquery,Jquery,我正在为文本输入构建一个自动完成的脚本。 为了避免多次不必要的ajax调用,我只希望在用户停止键入文本1秒后启动ajax调用。这样,我将为每按一个键节省一些开销呼叫。如何使用jQuery实现这一点 谢谢 Joel使用插件或-better-documented-plugin。您可以尝试类似的方法。我还没有玩上面的游戏。只是使用简单的js var keyUpTime = 1000; // 1 sec var keyUpTimeout = null; $('input[type=text]').key

我正在为文本输入构建一个自动完成的脚本。 为了避免多次不必要的ajax调用,我只希望在用户停止键入文本1秒后启动ajax调用。这样,我将为每按一个键节省一些开销呼叫。如何使用jQuery实现这一点

谢谢


Joel

使用插件或-better-documented-plugin。

您可以尝试类似的方法。我还没有玩上面的游戏。只是使用简单的js

var keyUpTime = 1000; // 1 sec
var keyUpTimeout = null;
$('input[type=text]').keyup( function(e) {
    clearTimeout(keyUpTimeout);
    keyUpTimeout = setTimeout(function() { sendAjax(); }, keyUpTime);
});
function sendAjax() {
    alert('Send it!');
}

还有另一个jquery插件。它对我来说很好

无论是作为参考,还是你不需要重新发明轮子,jqueryui的autocomplete插件都非常优秀,并且有这个确切的功能(当然是可选的,在使用时,你可以设置延迟)…您正在使用
keyUpTime
污染全局范围,如果右键单击并在关联菜单中选择“粘贴”,则不会触发
keyUpTimeout
关键事件。