2012-02-03 39 views
1

我試圖在文檔加載時隱藏(位置相對,頂部-150px)的橫幅(寬度100%,高度150px)。我想在3秒後顯示它,我做錯了什麼?這看起來很簡單嗎?爲什麼這個腳本在頁面加載後3秒動畫(jquery)?

$(function() { 
    var t = setTimeout(popmenu(), 3000); 

    function popmenu() { 

     $('#bcktop').animate({ 
       top : "+=150" 
      }, 150 
     );    
    }  
}); 
+0

您是否試過使用$(window).load(function()而不是document.ready? – bmoran 2012-02-03 21:13:10

回答

4

要調用popmenu而不是傳遞函數:

var t = setTimeout(popmenu(), 3000); 

應該是:

var t = setTimeout(popmenu, 3000); 
+0

驚人的,這麼簡單的細節!謝謝 – Joel 2012-02-03 21:52:18

1

你想傳遞一個函數引用到setTimeout功能。通過發送類似this()的函數,您可以將該函數的返回值發送到setTimeout

更改此:

var t = setTimeout(popmenu(), 3000); 

這樣:

var t = setTimeout(popmenu, 3000); 
0

您還可以使用jQuery的.delay()功能:各地popmenu

$('#bcktop').delay(3000).animate({ 
    top: "+=150" 
}, 150); 
0

添加引號(),並把function popmenu()$(function() { });修復了它:

$(function() { 
    var t = setTimeout("popmenu()", 3000); 
}); 

function popmenu() { 

    $('#bcktop').animate({ 
      top : "+=150" 
     }, 150 
    );    
} 
相關問題