-2

我有一个搜索位置,当我输入它时开始搜索,这很好,但我希望当我按下输入时,功能在 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 回答