0

キーアップ イベントが発生してから n 秒後に検索を実行する機能を検索機能に追加したいと考えています。アイデアは、誰かが 1 秒ほど試行をやめれば、検索ボタンをクリックする必要がなくなるというものです。これまでのところ、クリック時、用語が削除されたとき、および入力時に検索機能を起動しました。以下のコードで、タイマーを使いたい場所にマークを付けました。もうすぐ午前 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 に答える