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