1

私のWeb サイト で次の 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);
  });
}
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 に答える