我有以下代码,它会检测输入#search-box
字段的任何文本,然后立即运行搜索(如果超过2个字符):
$('#search-box').on('input', function() {
var term = $(this).val();
if (term.length > 2) {
//execute search and display results
}
});
这看起来并不漂亮,就好像你要输入dollar
一样,在'娃娃'之后会出现一堆娃娃,一旦dolla
出现,就会被美元取代。进入。这可能会在一瞬间发生。
我想做的是确定用户是否已完成搜索字词。在进行搜索之前是否可以等待一秒或2秒?如果在等待期间用户输入另一个字母,它会重置时钟吗?
答案 0 :(得分:2)
输入后您必须使用setTimeout()
等待。
var tim = '';
$('#search-box').on('input', function() {
clearTimeout(tim);
tim = setTimeout(my_func, 2000); //2000 means 2 seconds;
});
function my_func() {
var term = $(this).val();
if (term.length > 2) {
//execute search and display results
}
}
秒数在ms
,因此你也可以设置像1500
这样的东西一秒半。
clearTimeout
用于销毁tim
中的值。在clearTimeout(tim)
之后,tim
变为零,然后在#search-box
的长度增加/减少后开始。