Ich habe ein JQuery-Skript, das ich nur ausführen muss, wenn alles andere auf der Seite, einschließlich einiger anderer Javascripts (über die ich keine Kontrolle habe), ihre Arbeit beendet hat.
Ich dachte, es gab vielleicht schon eine Alternative zu $ (Dokument), aber ich konnte sie nicht finden.
javascript
jquery
dom
chrism
quelle
quelle
$(window).on('load', function() { });
da $ (window) .load () veraltet ist.Dieser Codeblock löst mein Problem,
quelle
Mehrere
$(document).ready()
werden in der Reihenfolge von oben nach unten auf der Seite ausgelöst. Der letzte$(document).ready()
wird zuletzt auf der Seite ausgelöst. Im letzten$(document).ready()
können Sie ein neues benutzerdefiniertes Ereignis auslösen, das nach allen anderen ausgelöst wird.Wickeln Sie Ihren Code in einen Ereignishandler für das neue benutzerdefinierte Ereignis.
quelle
Von hier aus :
Dies wartet, bis jQuery geladen ist, um es zu verwenden. Sie können jedoch dasselbe Konzept verwenden, indem Sie Variablen in Ihren anderen Skripten festlegen (oder sie überprüfen, wenn sie nicht Ihr Skript sind), um zu warten, bis sie geladen werden, um sie zu verwenden.
Auf meiner Site verwende ich dies beispielsweise zum asynchronen Laden von JS und zum Warten, bis sie fertig sind, bevor ich mit jQuery etwas mit ihnen mache:
quelle
Es stellt sich heraus, dass ich aufgrund einer besonderen Mischung von Javascript-Frameworks das Skript mithilfe eines Ereignis-Listeners initiieren musste, der von einem der anderen Frameworks bereitgestellt wird.
quelle
Haben Sie versucht, alle Initialisierungsfunktionen mit der zuletzt
$().ready
ausgeführten jQuery-Funktion zu laden ?Vielleicht können Sie
setTimeout()
die$().ready
Funktion verwenden, die Sie ausführen möchten, und die Funktionalität aufrufen, die Sie laden möchten.Oder verwenden Sie
setInterval()
die Intervallprüfung, um festzustellen, ob alle anderen Ladefunktionen abgeschlossen sind (speichern Sie den Status in einer booleschen Variablen). Wenn die Bedingungen erfüllt sind, können Sie das Intervall abbrechen und die Ladefunktion ausführen.quelle
$(window).load(function(){...})