jquery keyup延迟被忽略

时间:2015-01-28 12:23:27

标签: javascript jquery ajax timeout keyup

好吧也许有人可以告诉我这里我缺少的人。我有一个文本框,它根据用户输入使用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);
});

2 个答案:

答案 0 :(得分:1)

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

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

这应该有用。

答案 1 :(得分:0)

试试这个setTimeout( 'you need to pass function here', 300 )

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

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