-2

検索場所があり、入力すると検索が開始されますが、Enterキーを押すと2秒後に機能が開始されるようにしたいです。

使用してsetTimeoutいますが、正しく動作しません。

私に何ができる ?

フォーム:

<form id="search" method="get">
  <input id="searchplace" type="text" size="40" value="" placeholder="xxxx" />
</form>

JavaScript

$("#search").keypress(function(event){
  if(event.keyCode == 13){
    $('.menu-bg').addClass('loading');      
    var x = $("#searchplace").val();

    setTimeout(m(),2000);

    function m(){
      $('.tabs').remove();
      window.location="search.php?page=noajax&q="+x;
      return false;
    };  
  }
});
4

2 に答える 2

7

ハンドラー参照を setTimout に渡す必要があり、ハンドラーを呼び出す必要はありません。他m()のページにリダイレクトしていますか?

変化する

setTimeout(m(),2000);

setTimeout(m,2000);

また、イベント キー プレスの外で m() を定義します。

var x;
$("#search").keypress(function(event){

  if(event.keyCode == 13){

     $('.menu-bg').addClass('loading');     
     x = $("#searchplace").val();
     setTimeout(m,2000);   

  }
});

function m(){
   $('.tabs').remove();
   window.location="search.php?page=noajax&q="+x;    
   return false;
};
于 2013-03-09T08:05:35.343 に答える
1

これを試して

setTimeout(m, 2000);

なしで()

于 2013-03-09T08:07:43.763 に答える