我有一个 jQuery Ajax 请求,我想通过文本输入来调用它,因此我将它嵌套在 keyup(function()
中。这工作得很好。
$("#text_box").keyup(function() {
//AJAX REQUEST
});
但这有时会出现问题。当我非常快地输入一些文本时,我得到输入单词的结果,其中省略了原始输入单词的一些最后字母(可能是浏览器的一些故障)。我希望当一秒钟没有输入事件时发送 ajax 请求,我的意思是,如果我输入文本非常快并休息一秒钟(意味着我进行了输入)。我怎样才能做到这一点?
最佳答案
听起来好像您从之前的 ajax 调用中获得了结果。使用带有 setTimeout
和 clearTimeout
的计时器。
var timer = null;
$("#text_box").keyup(function() {
if(timer) {
clearTimeout(timer);
}
timer = setTimeout(someFunction, someDelay);
});
其中 someFunction
是执行 ajax 调用的函数,someDelay
是用户键入后执行调用之前要等待的延迟(以毫秒为单位)。
关于javascript - keyup(function()) ajax 请求延迟 - jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10832237/