我有类似于jquery-run-code-2-seconds-after-last-keypress的需求。
现在,当我使用@brad
的代码时,只要我这样做就可以正常工作:
$('input.username').keypress(debounce(function (event) {
console.log('Search keypress');
}, 250));
但是不包括以下情况:
$('#search').keypress(function () {
debounce(function (event) {
console.log('Search keypress');
}, 2000);
});
这里是Fiddle。非常感谢您的帮助。
编辑:
最初我做的类似于以下内容,这不是我想要的-
$('#search').keypress(function () {
setTimeout(function () {
console.log('Search keypress');
}, 3000);
});
编辑2:- 我想要的和下面非常相似:(从那里复制的文本)
目前,在输入3个字符后,每次按键都会搜索。
我想要的是
情况1:
用户输入tes
经过2秒 进行搜索
情况2:
用户输入tes
过了1秒钟
用户按下t
经过2秒
在test上执行搜索
情况3:
用户输入tes
过了1秒钟
用户按下t
过了1.5秒钟
用户按下i
过了1.5秒钟
用户按下n
过了1.5秒钟
用户按下g
经过2秒
在testing上执行搜索
因此,如您所见, 只有在按键后2秒内没有按键(或粘贴等)时才执行搜索操作。
我的基本想法是。
在按键按下时 调用设置超时的函数, 该函数还设置一个包含文本框中最后一个条目的变量。 当超时到期时,它将检查盒中的值是否与变量中的值匹配。