In der Vergangenheit habe ich $ (window) .onload verwendet, um einen Codeblock auszuführen, nachdem andere Skripte geladen wurden. In diesem Fall habe ich nicht die Möglichkeit, die Ladereihenfolge der JS-Dateien zu ändern, und der Code, mit dem ich mich beschäftige, muss DOM-Knoten bearbeiten, die dynamisch von einer anderen JS-Datei eingefügt werden, die weiter unten auf der Seite geladen wird. Beide Skripts befinden sich am unteren Ende des Dokuments. Hat jemand Vorschläge für dieses Szenario?
Auch wenn Sie die Ladereihenfolge nicht ändern können, können Sie ändern, wie sie geladen wird?
Eine Sache, die ich in der Vergangenheit benutzt habe, als ich etwas JavaScript laden und Code ausführen wollte, nachdem ich sicher war, dass das Laden beendet wurde, ist jquery's $ .getScript:
%Vor%Das Problem war, eine Variable zum Speichern des jQuery-Objekts zu deklarieren, bevor sich das Objekt auf der Seite befand. Das Verschieben dieser Deklarationen innerhalb eines Codeblocks, der nur nach einem Klick-Ereignis ausgeführt wurde, das nur nach $ (window) gebunden war, löste das Problem.
Danke aber allen für die Tipps!
Wenn das andere Skript vollständig innerhalb eines load-Ereignisses ausgeführt wird, können Sie demselben Ereignis einen Handler hinzufügen und Ihren Code in einen setTimeout
-Aufruf setzen (mit einer Verzögerung von 1
), wodurch der Code zur Ausführung gezwungen wird während der nächsten Pause.
Tags und Links javascript jquery dom dynamic