setTimeout()不会延迟

setTimeout() does not delay

本文关键字:延迟 setTimeout      更新时间:2023-09-26

我在我的网站中使用以下JavaScript, setTimeout()不会延迟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);
  });
}

你正在调用函数本身,而不是传递一个函数给setTimeout调用,尝试

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

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

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

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