【问题标题】:jquery keyup delay is being ignoredjquery keyup 延迟被忽略
【发布时间】:2015-01-28 12:23:26
【问题描述】:

好吧,也许有人可以告诉我我在这里缺少什么。我有一个文本框,它根据用户输入使用 ajax 调用更新 jquery 数据表。显然,希望只在用户完成输入后才触发 ajax 调用。

但是,无论我从 SO 和其他地方尝试什么 sn-ps,超时都会被忽略,并且 ajax 会立即触发。我想知道是否有人可以指出我正确的方向。

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

【问题讨论】:

    标签: javascript jquery ajax timeout keyup


    【解决方案1】:

    您必须将一个函数作为第一个参数传递给超时函数。现在您正在传递 alert("test") 调用的结果。

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

    这应该可行。

    【讨论】:

    • 啊!!如此简单,非常感谢您的帮助,它现在完美运行。当 SO 也允许我时,我会在 8 分钟内接受。祝你好运。
    • 欢迎您,很高兴为您提供帮助。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 2020-05-12
      • 1970-01-01
      相关资源
      最近更新 更多