Ich habe mehrere Funktionen in mehreren Dateien an $(document).ready angehängt und möchte eine einzelne Funktion anhängen, um vor ihnen als entweder die erste, die $(document).ready behandelt oder unabhängig vor dem $(document).ready-Handler auslösen zu geschehen.
Gibt es eine Möglichkeit, die Reihenfolge der Funktionen zu behandeln, die jQuery intern als Teil von jQuery.fn.ready auslöst oder eine Funktion einzuhängen, die kurz vor jQuery.fn.ready aufruft.
Ist die Bearbeitung von jQuery.fn.ready in einem Skript eines Drittanbieters sicher zu tun oder wird es schreckliche Auswirkungen auf andere Plugins von Drittanbietern verursachen (abgesehen von Plugins, die jQuery.fn.ready selbst bearbeiten)
[Bearbeiten]:
als Beispiel
$(document).ready(function b() {});
....
$(document).ready(function a() {/* optional setup*/});
....
$(document).ready(function c() {});
Die Funktion a muss unabhängig von der Reihenfolge zuerst ausgeführt werden, wird aber nur auf einigen wenigen Seiten aufgerufen. Ich kann die Reihenfolge von b oder c nicht garantieren, also kann ich keine benutzerdefinierten Ereignisse am Anfang von b oder c auslösen, um a auszulösen.
So möchte ich eine generische Lösung, die ich verwenden können, um zwangsweise ein am Anfang von jQuery's interne readyList oder Haken in jQuery's ready-Funktion und bearbeiten Sie es sicher, so dass es eine vor einer der anderen Funktionen in readyList aufruft.
[Weitere Bearbeitung]
Wenn möglich, möchte ich die Ausführungsreihenfolge des Javascript-Codes nicht umgestalten oder irgendeinen anderen Code außer der Funktion a() berühren müssen. Ich bin mir bewusst, dass eine Umstrukturierung mir erlauben würde, dieses Problem zu umgehen, aber ich würde lieber nur eine einzige Funktion schreiben wie
$.beforeReady(function a() {});