js给input绑定一个延时1秒的按键事件
页面一个input当作搜索框,并且为该input绑定按键事件用来触发搜索!但我现在需要在这基础上加一个延时的功能。要求连续输入时,只在最后按键1秒后触发搜索!比如我连续输...
页面一个input当作搜索框,并且为该input绑定按键事件用来触发搜索!但我现在需要在这基础上加一个延时的功能。要求连续输入时,只在最后按键1秒后触发搜索!比如我连续输入1,2,3(按键间隔小于1秒),那就只在输完"3"的1秒后执行1次按键事件,而不是执行3次按键事件!
展开
展开全部
我告诉你我的思想吧:
你在触发事件的时候写一个定时器,定时器设置一秒后执行,如果再次触发时定时器还没执行则关闭清空此定时器再执行一次这个定时器。 如你输入1的时候触发定时器,你输做做颂入2的时候是在输入1的后小于1秒钟,则输入2时触发事件为关纯郑闭清胡唤空上一个定时器,再开一次, 输入3时同理, 如后面没跟输入触发时间则执行3时触发的定时器。
你在触发事件的时候写一个定时器,定时器设置一秒后执行,如果再次触发时定时器还没执行则关闭清空此定时器再执行一次这个定时器。 如你输入1的时候触发定时器,你输做做颂入2的时候是在输入1的后小于1秒钟,则输入2时触发事件为关纯郑闭清胡唤空上一个定时器,再开一次, 输入3时同理, 如后面没跟输入触发时间则执行3时触发的定时器。
更多追问追答
追问
来个例子吧!
追答
举个图例吧
输入“1”时候触发事件为:a;输入“2”时候触发事件为:b;输入“1”时候触发事件为:c
定义全局变量 timer = null;
a = function(){
设置定时器:timer = setInterval(执行事件,1000)
}
b= function(){
清空关闭定时器 timer = null;
设置定时器:timer = setInterval(执行事件,1000)
}
c= function(){
清空关闭定时器 timer = null;
设置定时器:timer = setInterval(执行事件,1000)
}
如果已经触发b事件,再触发c事件的时候需要关闭b时间的效果则 停止b事件的执行事件
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询