2013-03-13 211 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