jQuery按键事件等待0.5秒,等待另一个用户的按键。

问题描述 投票:4回答:1

我正在为我的网站开发一个实时搜索,我想用一些简单的jQuery来减少一些不必要的请求(当然我有一个后端洪水控制)。我的搜索字段有一个keydown-event-listener。這個監聽器目前只在以下情況下,才會啟動 PHP search-function 的 ajax 指令。val().length 是>=3。

但是现在我想要一个额外的条件。所以当长度为>=3时,我想等待大约0.5s左右,如果用户正在执行另一个按键。如果他这样做了,函数就不应该被调用,我想让监听器再等待0.5s,再等待更多的用户输入,以此类推。如何实现这样的功能?

javascript jquery events keypress jquery-events
1个回答
11
投票
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);
})
© www.soinside.com 2019 - 2024. All rights reserved.