我想做的是,有一个input
方框,当用户键入任何内容时,代码应向服务器发出请求,并向用户返回一些数据。
这只是typeahead
建议功能,但仍不完全相同。
我目前拥有的是以下代码
$("input").on("input", function(ev) {
alert(`${ev.type} event detected`)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" placeholder="text">
并且代码按预期工作,也就是说,只要input
box值更改,就会捕获该事件。
我的问题是,如何使代码在处理input
更改事件之前等待几秒钟或几毫秒?1000ms
稍后说input
停止更改时触发代码。
从现在开始,代码将按我输入的每个字母触发,这会导致发生很多我不希望发生的事件。
您可以在按下某个键时设置一个计时器,如果按下另一个键并且该计时器仍在运行(timer var不为null),则在重新设置计时器之前将其取消。
var timer;
$("input").on("input", function(ev) {
if (timer) {
clearTimeout(timer);
timer = null;
}
timer = setTimeout(function(){
console.log(`${ev.type} event detected`);
timer = null;
}, 1000);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" placeholder="text">
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句