我只是想实现这一目标.如果用户正在搜索关键字示例"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');
}
})
})
Run Code Online (Sandbox Code Playgroud)
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);
});
Run Code Online (Sandbox Code Playgroud)
注意: 代码取自SO几个月前,不记得链接
编辑:
检查这个jsFiddle.检查代码中的注释并在控制台中输出以获得更好的描述