我想在我的搜索功能中添加一个功能,该功能将在触发键盘事件后n秒执行搜索。这个想法是,如果有人停止尝试一秒左右,他们就不必点击搜索按钮。到目前为止,我在点击时,在删除术语时点击搜索功能,然后输入。我在下面的代码中标记了我想要定时器的东西。我问这个是因为它差不多凌晨3点,而JavaScript正在伤害我的脑袋。对不起,如果重复...
这就是我所拥有的:
$("#filter").keyup( function(e)
{
var filter = $("#filter").val();
if( filter == 0 || filter == '' || filter == null )
{
test();
}
else
{
*********** timer, then test();
}
if (e.which == 13)
{
e.preventDefault();
test();
}
});
答案 0 :(得分:2)
$("#filter").keyup( function(e) {
var filter = $("#filter").val(),
timer = $('#filter').data('timeout'),
n = 2;// the number of seconds to wait
if(timer) {
clearTimeout(timer);
$('#filter').removeData('timeout');
}
if( filter == 0 || filter == '' || filter == null ) {
test();
} else if (e.which == 13) {
e.preventDefault();
test();
} else {
$('#filter').data('timeout', setTimeout(test, 1000 * n));
}
});