2013-07-08 27 views
4

在舊的jQuery一個可以添加一個功能的document.ready像這樣的頂部:定義document.ready()函數的序列?

$.readyList.unshift(function() { 

現在這是不可能的了。是否有另一種方法將一個功能移到頂端?我們的ASP.NET頁面由不同的控件組成,它們都有自己的document.ready,所以目前我不可能改變它。但是我需要一個函數在所有其他函數之前運行。

有沒有另一種「乾淨」的方式來做到這一點?

+0

你能給你的意思更具體的例子?什麼阻止你在document.ready()的頂部運行條件來調用你需要的函數? –

+0

我們有多個開發人員構建的控件。所以改變它們都很複雜。 – Remy

+0

那麼爲什麼不把你的函數設置爲第一個就緒處理程序呢?在包含jquery後面設置它 –

回答

4

here

這是由於這樣的事實,準備是(應該是)一個事件 - 即一些內部的暴露是一個錯誤(一說我們是 工作的事實 整頓)。正如你所提到的那樣,它是無證的,並且它的曝光是無意的。

雖然我不知道該怎麼阻止你寫你自己的列表(或擴展jQuery的)用新readyList:

var readyList = [func1, func2, func3 ...]; 

並執行一個個.ready()

+0

我真的不能控制所有函數。雖然這是可能的,但我希望有一個不同的解決方案。 – Remy

+1

您可以將該函數調用放在HTML頁面的底部腳本標記中:p – loxxy

3

使用holdready

jQuery

$.holdReady(true); 
//your function that must be first... 
$.holdReady(false); 
+0

但是可以在文檔實際準備好之前執行此操作,否? – Remy

+0

它應該在文檔準備好之前執行。它擁有實際的射擊事件。 – raam86

+0

是的,這並沒有什麼幫助:-( – Remy