我试图准备一些功能来过滤和排序通过 ajax 从数据库返回的数据,但我无法解决一个问题。
我在许多网站和 Web 应用程序上看到过非常有趣的处理文本输入字段的方式,它的工作方式就像你输入一些内容,当你输入时什么也没有发生,但如果你停下来 3 秒钟,它就会启动并执行 ajax 请求,所以我开始尝试许多内置 jquery 函数,但似乎没有一个是这样工作的。
keyup激发你提供给现场的每个角色,因此不行
change需要您单击字段外部才能启动,这是糟糕的解决方案
mouseleave不适用于文本输入字段,当您离开输入时什么也不会发生
mouseout好吧,这个有效,当我将鼠标移出字段时,它会启动,但每次用户调整他的研究以将鼠标移入和移出时,它仍然需要用户,这比change方法更糟糕
input, keypress,keydown工作原理相同,因为keyup它们只是外观上的差异,但方法保持不变,所以不用去
因此,我想要实现的方法是在您停止打字后一段时间启动的方法,并且不需要任何鼠标移动或单击,尽管我不知道如何处理它。
超文本标记语言
<input type="text" class="adjust" />
Run Code Online (Sandbox Code Playgroud)
JavaScript
$('.adjust').on('change', function() {
alert('event has fired');
});
Run Code Online (Sandbox Code Playgroud)
如果有人愿意帮忙,我准备了一些初步的 jsfiddle 来进行实验:
尝试这个...
var keyupTimeoutID = 0;
$('.adjust').on('input', function() {
clearTimeout(keyupTimeoutID);
keyupTimeoutID = setTimeout(function() {
alert('event has fired');
}, 1000);
});
Run Code Online (Sandbox Code Playgroud)
每次值发生变化时,它都会创建一个超时,并清除以前的任何超时。我将其设置为 1 秒,但您显然可以更改它以适应。
| 归档时间: |
|
| 查看次数: |
2513 次 |
| 最近记录: |