複数のファイルの複数の関数を$(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() {});
関数aは、順序に関係なく最初に発生する必要がありますが、数ページでのみ呼び出されます。bまたはcの順序を保証できないため、bまたはcの開始時にカスタムイベントをトリガーしてaをトリガーすることはできません。
したがって、jQueryの内部readyListの先頭に強制的に配置するか、jQueryのready関数にフックして安全に編集し、readyListの他の関数の前に呼び出すことができる汎用ソリューションが必要です。
[さらに編集]
可能であれば、JavaScriptコードの実行順序を再設計したり、関数a()以外の他のコードに触れたりする必要はありません。リストラによってこの問題を回避できることは承知していますが、次のような単一の関数を記述したいだけです。
$.beforeReady(function a() {});