javascript - jQuery 按键事件等待 0.5 秒等待另一个用户按键

标签 javascript jquery events keypress jquery-events

我目前正在为我的网站开发一个实时搜索,我想用一些简单的 jQuery 来减少一些不必要的请求(当然我有一个后端泛洪控制)。我的搜索字段有一个 keydown-event-listener。如果 val().length 为 >= 3,此监听器当前仅会触发 PHP 搜索功能的 ajax 命令。

但现在我想要一个附加条件。因此,当长度 >= 3 时,如果用户正在执行另一个按键,我想等待大约 0.5 秒左右。如果他这样做,则不应调用该函数,我希望监听器再等待 0.5 秒,然后再次等待更多用户输入,依此类推。我如何实现这样的功能?

最佳答案

var timeout;

$('#yousearchbox').on('keyup',function(){
  //if you already have a timout, clear it
  if(timeout){ clearTimeout(timeout);}

  //start new time, to perform ajax stuff in 500ms
  timeout = setTimeout(function() {
   //your ajax stuff
  },500);
})

关于javascript - jQuery 按键事件等待 0.5 秒等待另一个用户按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21781827/

相关文章:

javascript - 如何干燥类似的函数调用

javascript - 如何将 onclick 事件附加到元素数组 (mootools)

javascript - 焦点触发模糊事件

javascript - 在 NextJs 的服务器端代码中访问静态资源?

javascript - 单击主页链接时重置滚动到顶部

javascript - ESLint:解析错误:意外的标记 ':'

javascript - 将对象拖出溢出 :hidden

javascript - 选择第 n 个子元素是来自 javascript/jquery 的元素

javascript - 捕获 'Blocked loading mixed active content' CORS 错误

c# - 从 Protected Virtual Void 方法或直接引发事件有什么不同?