键入输入时的用户空闲时间



我遇到的问题是搜索函数,当用户停止在我的$("input#q)字段中键入至少 100 毫秒后,它应该调用我的 doSearch() -method。

我试图通过使用这个答案的逻辑来实现这一点,但我坚持在哪里设置/取消设置增加idleTimesetInterval()

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());
  }
}

我在Firebug控制台中遇到的错误说:

递归过多。

所以我想我的代码中有一个无限循环... ;-)

您需要

在启动新计时器时重置计时器。以下是我会做的:

var timer = null;
$('input#q').keyup(function() {
    if (timer) {
        clearTimeout(timer);
    }
    timer = setTimeout(function() {
        doSearch($('input#q').val())
    }, 100);
});

相关内容

  • 没有找到相关文章

最新更新