1

我在我的网站 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);
  });
}
4

1 回答 1

3

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

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

代替setTimeout(getResults(u),50000);

我创建了一个小小提琴来说明这是如何工作的。

这是MDN 文章关于setTimeout. 它有很好的例子来说明它是如何工作的。

于 2013-03-13T06:17:17.843 回答