setTimeout()不会延迟

时间:2013-03-13 06:16:16

标签: javascript

我在website setTimeout()中使用以下JavaScript代码,不会延迟调用函数5秒。

function myFunction() {
    param = $('#search').val();
    //alert("I am an alert box!");
    if (param != "") {
        $("#status").show();
        //alert("Show ");
        var u = 'https://graph.facebook.com/search/?callback=&limit=5&q='+param;
        $("#data").empty();     
        alert("Wait for 5 sec?");
        setTimeout(getResults(u),50000);    // this line
        //getResults(u);
        //alert("When myFunction runs show more line 20");
        $("#more").show(); 
        }

    $("#more").click(function () { 
    $("#status").show();
    //alert("Show ");
    $("#more").hide();  
    pageTracker._trackPageview('/?q=/more');
    var u = nexturl;
    getResults(u);
  });
}

1 个答案:

答案 0 :(得分:3)

您正在调用函数本身而不是传递setTimeout函数来调用,请尝试

 setTimeout(function(){
    getResults(u);
 },5000);//note time is in miliseconds, so 5 seconds is 5000 not 50000

而不是setTimeout(getResults(u),50000);

我创建了一个small fiddle来说明这是如何运作的。

以下是the MDN article setTimeout。它有很好的例子说明它的工作原理。