jquery - 按键两秒后执行某操作

标签 jquery ajax

我只是想实现这个目标。如果用户正在搜索关键字示例“stackoverflow”,我只想在此之后发送 ajax 调用。不是每次他按任何键的时候。因此,每次按下按键时,我都可以节省大量的ajax调用。

我试图检查,如果用户在按任意键后两秒内没有再按任何键,那么我将发送 ajax 调用。但我不知道如何使用间隔或设置超时请帮助并希望您能理解我试图解释的内容。谢谢

这是我的小代码。

$(document).ready(function(){
    var counter = 0;
    $("#input").keyup(function(){

        var myInterval = setInterval(function () {
            ++counter;
        }, 1000);

        if(myInterval > 2)
        {
            alert('ajax call going');
            clearInterval(myInterval);
        }
        else
        {
            alert('doing nothing');
        }
    })
})

最佳答案

var _changeInterval = null;

$("#input").keyup(function() {
    // wait untill user type in something
    // Don't let call setInterval - clear it, user is still typing
    clearInterval(_changeInterval)
    _changeInterval = setInterval(function() {
        // Typing finished, now you can Do whatever after 2 sec
        clearInterval(_changeInterval)
    }, 2000);

});

注意: 代码取自几个月前,不记得链接

编辑:

检查这个jsFiddle 。检查代码中的注释和控制台中的输出以更好地理解

关于jquery - 按键两秒后执行某操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34260561/

相关文章:

javascript - 如何检测是window.location.reload还是location.href被调用?

javascript - 基于 CSS 类和文本的排序元素不起作用

javascript - 根据变量值动态添加类到表中

ajax - 阻止 .ajax 双重加载内容

ajax - 导航时替换 Bootstrap 输入提示

javascript - IE 浏览器中不触发鼠标按下事件

javascript - 使用 JQuery 设置 HTML 属性

javascript - 使用 JQuery-2.0.3 发出 AJAX 请求时出现错误请求错误

javascript - 向下滚动时扩展站点?

php - 使用ajax post方法的变量不起作用