2013-03-13 90 views
0

我在我的websitesetTimeout()中使用以下一段JavaScript,不会延迟调用5秒的函数。setTimeout()不会延迟

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); 
    }); 
} 

回答

2

你调用该函数本身,而不是传递函数为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 articlesetTimeout。它有关于它如何工作的很好的例子。

+1

+1链接到MDN文章 – 2013-03-13 06:34:04