当我在javascript中按下时,如何延迟功能?

pen*_*nia -2 javascript jquery function delay settimeout

我有一个搜索的地方,当我进入它开始搜索,这是好的,但我想,当我按下输入功能启动2秒后.

我正在使用,setTimeout但它无法正常工作.

我能做什么 ?

表格:

<form id="search" method="get">
  <input id="searchplace" type="text" size="40" value="" placeholder="xxxx" />
</form>
Run Code Online (Sandbox Code Playgroud)

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;
    };  
  }
});
Run Code Online (Sandbox Code Playgroud)

Adi*_*dil 7

您需要将处理程序引用传递给setTimout,而不需要调用处理程序.在m()你重定向到其他页面?

更改

setTimeout(m(),2000);
Run Code Online (Sandbox Code Playgroud)

setTimeout(m,2000);
Run Code Online (Sandbox Code Playgroud)

同时在事件键外按下定义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;
};
Run Code Online (Sandbox Code Playgroud)