2013-03-09 62 views
-2

我有一个搜索的地方,当我输入它开始搜索,它是好的,但我希望当我按下输入功能2秒后开始。当我在javascript中按下时如何延迟一个函数?

我正在使用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; 
    }; 
    } 
}); 

回答

7

您需要通过处理器参考setTimout不需要调用处理程序。在m()你正在重定向到其他页面?

变化

setTimeout(m(),2000); 

setTimeout(m,2000); 

还要定义米()外事件按键

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; 
}; 
+0

没有这dosnt工作... – pencilvania 2013-03-09 08:08:18

+0

'x'被定义为事件处理程序,以便将在这里'M'功能是不确定里面的变量。 – steveukx 2013-03-09 08:15:47

+0

谢谢@steveukx,更新了我的答案。 – Adil 2013-03-09 08:18:40

1

尝试此

setTimeout(m, 2000); 

没有()