Sey*_*sen 2 jquery user-input idle-timer
我遇到的问题是一个搜索功能,doSearch()在用户在我的$("input#q)字段中停止键入至少100毫秒之后应该调用我的方法.
我试图通过使用这个答案的逻辑来实现这一目标,但我仍然坚持我应该设置/取消设置的setInterval()增量idleTime.
var idleTime = 0;
$("input#q").keyup(function() {
idleTime = 0;
idleInterval = setInterval(function() {
idleTimeIncrement();
}, 25);
});
function idleTimeIncrement() {
idleTime += 25;
if (idleTime >= 100) {
doSearch($("input#q").val());
}
}
Run Code Online (Sandbox Code Playgroud)
我在Firebug Console中遇到的错误说:
递归太多了.
所以我想我的代码中有一个无限循环... ;-)
您需要在开始新计时时重置计时器.这就是我要做的事情:
var timer = null;
$('input#q').keyup(function() {
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function() {
doSearch($('input#q').val())
}, 100);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1856 次 |
| 最近记录: |