jQuery - 搜索文本条目 - 延迟到输入完整学期

时间:2016-11-11 10:20:09

标签: jquery

我有以下代码,它会检测输入#search-box字段的任何文本,然后立即运行搜索(如果超过2个字符):

$('#search-box').on('input', function() { 

    var term = $(this).val();
    if (term.length > 2) {
      //execute search and display results
    }

});

这看起来并不漂亮,就好像你要输入dollar一样,在'娃娃'之后会出现一堆娃娃,一旦dolla出现,就会被美元取代。进入。这可能会在一瞬间发生。

我想做的是确定用户是否已完成搜索字词。在进行搜索之前是否可以等待一秒或2秒?如果在等待期间用户输入另一个字母,它会重置时钟吗?

1 个答案:

答案 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的长度增加/减少后开始。