jQuery 键控延迟被忽略

jquery keyup delay is being ignored

本文关键字:延迟 jQuery      更新时间:2023-09-26

好吧,也许有人可以启发我,伙计们,我在这里错过了什么。我有一个文本框,它根据用户输入使用 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);
});
您必须将

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

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

这应该有效。

试试这个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"); 
}