Javascript 忽略jquery密钥更新延迟

Javascript 忽略jquery密钥更新延迟,javascript,jquery,ajax,timeout,keyup,Javascript,Jquery,Ajax,Timeout,Keyup,好吧,也许有人能告诉我,我在这里错过了什么,伙计们。我有一个文本框,它使用基于用户输入的ajax调用更新jquery数据表。显然,我们的目的是只在用户完成输入后触发ajax调用 然而,无论我从SO和其他地方尝试了什么样的代码片段,超时都会被忽略,ajax会立即启动。我想知道是否有人能给我指出正确的方向 var timer; $("#search_query").on('keyup', function() { clearInterval(timer); //clear any

好吧,也许有人能告诉我,我在这里错过了什么,伙计们。我有一个文本框,它使用基于用户输入的ajax调用更新jquery数据表。显然,我们的目的是只在用户完成输入后触发ajax调用

然而,无论我从SO和其他地方尝试了什么样的代码片段,超时都会被忽略,ajax会立即启动。我想知道是否有人能给我指出正确的方向

    var timer;
$("#search_query").on('keyup', function() {
    clearInterval(timer);  //clear any interval on key up
    timer = setTimeout(alert("test"), 3000);
});

必须将函数作为第一个参数传递给超时函数。现在,您正在传递警报(“测试”)调用的结果

这应该行得通。

试试这个
设置超时('您需要在这里传递函数',300)


啊!!非常简单,非常感谢您的帮助,现在它工作得非常好。如果SO允许,我也会在8分钟内接受。祝你过得愉快。欢迎光临,很乐意帮忙。
   var timer;
$("#search_query").on('keyup', function() {
    clearInterval(timer);  //clear any interval on key up
    timer = setTimeout(function(){ alert("test"); }, 3000);
});
var timer;
$("#search_query").on('keyup', function() {
    clearInterval(timer);  //clear any interval on key up
    timer = setTimeout(hello, 3000);
});

function hello(){ 
    alert("test"); 
}