0

我想在我的搜索功能中添加一个功能,该功能将在触发 keyup 事件后 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();
  }
});
4

1 回答 1

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));
  }      
});
于 2012-11-17T10:43:31.087 回答