2010-06-28 82 views
0

我剛開始使用jQuery的原型,並正在與負載函數來執行一些腳本工作一旦頁面已經被加載:控制序列

$(window).load(
function() 
{ 
Stuff happens 
} 
); 

但是,你怎麼加函數列表並控制它們執行的順序?我很難將所有我想要加載的東西放在'東西發生'區域,所以我需要能夠添加和刪除數組中的東西並更改順序。然後加載一個頁面,執行該列表。

任何線索?

+0

「改變順序」部分是棘手的,你能提供一個這樣的例子嗎? – 2010-06-28 15:33:51

+0

這聽起來不像特定的問題,因爲它是控制流程的一般難點,所以你的問題不夠具體,無法提供答案。如果你想得到答案,你必須做更多的事情來解釋你想要做什麼,以及你遇到的確切問題。 – 2010-06-28 16:17:01

回答

1

你可能會嘗試這樣的事情。

首先,設置你的功能:

var func1 = function(){ alert('this'); }; 
var func2 = function(){ alert('that'); }; 

接下來,讓一個數組來包含他們所需的順序:

var funcs = [ 
    function(){alert('a');}, // anonymous, defined inline 
    function(){alert('b');}, 
    func2,     // or by reference 
    func1,     // you control the sequence 
]; 
funcs.push(function(){alert('c');}); // etc 

最後,在load處理程序:

$(window).load(function(){ 
    $.each(funcs, function(i,thisfunc){ // or native js for() if you prefer 
    thisfunc(); 
    });​ 
}); 

load事件觸發時,您將收到警報一個b這個c。這與jQuery如何使用其私有的readylist數組處理此類事情並非完全不同。