我只是想实现这个目标。如果用户正在搜索关键字示例“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/