我已經將多個函數的多個函數附加到$(document).ready並且希望附加一個函數以作爲第一個$(document).ready處理或在$(document).ready處理程序之前獨立觸發。
有什麼辦法來處理jQuery在內部作爲jQuery.fn.ready一部分觸發的函數的順序,或者是在jQuery.fn.ready之前調用的函數中掛接的函數的順序。
正在編輯jQuery.fn.ready在第三方腳本安全做還是會引起其他第三方插件效果(除了插件,編輯jQuery.fn.ready自理)
[可怕的敲門聲編輯]:
爲例
$(document).ready(function b() {});
....
$(document).ready(function a() {/* optional setup*/});
....
$(document).ready(function c() {});
功能的需要做的第一不相干的順序,但只被調用上幾頁。我不能保證b或c的順序,所以我不能在b或c的開頭觸發自定義事件來觸發a。
所以我想要一個通用的解決方案,我可以用它在jQuery的內部readyList或hook的開始處強制放置jQuery的ready函數,並安全地進行編輯,以便在readyList中的任何其他函數之前調用它。
[進一步編輯]
如果可能的話,我寧願不用重新設計JavaScript代碼的執行順序或必須從功能分開觸摸任何其他代碼()。我知道重組,讓我來解決這個問題,但我寧願只寫這樣
$.beforeReady(function a() {});
當你需要beforeReady函數之前添加運行代碼,你會做什麼?你會添加一個beforeBeforeReady嗎?有時你只需要咬緊牙關,做需要做的事情並修復代碼,這樣纔有意義。 – 2010-11-04 16:19:53
@賈尼你可能有一個有效的觀點。不過我寧願創建一個beforeReady,然後用.bind(「loaded」)替換所有發生的.ready,並用.bind(「setup」)替換beforeReady。 – Raynos 2010-11-04 16:25:14
這個問題應該在下一個版本的jQuery中修復:https:// github.com/jquery/jquery/pull/80 – Mottie 2010-11-04 17:32:22