Heim >Web-Frontend >js-Tutorial >Warum wird das native „onload'-Ereignis nicht für mit jQuery geladene Skript-Tags ausgelöst?

Warum wird das native „onload'-Ereignis nicht für mit jQuery geladene Skript-Tags ausgelöst?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 08:48:02592Durchsuche

Why is the Native `onload` Event Not Firing for Script Tags Loaded with jQuery?

Natives Onload-Ereignis wird für mit jQuery geladene Skript-Tags nicht ausgelöst

Beim Versuch, eine Sequenz von Skripten in einer bestimmten Reihenfolge zu laden, kann es sein, dass Entwickler Es kommt zu einem Szenario, in dem das native Onload-Ereignis nicht ausgelöst wird. Dieses Problem tritt auf, wenn jQuery zum Anhängen des Skriptelements an das DOM verwendet wird.

Um dieses Problem zu beheben, ändern Sie den folgenden Code:

el.onload = function(script){ ...
el.src = script;

Dieses Codefragment weist das src-Attribut nach dem fälschlicherweise zu Onload-Ereignisfunktion. Stattdessen sollte es wie folgt geändert werden:

el.onload = function(script){ ...
el.src = script;

Stellen Sie außerdem sicher, dass das Skriptelement an das DOM angehängt wird, bevor Sie das Onload-Ereignis anhängen:

$body.append(el);
el.onload = function() { ...
el.src = script;

Es ist wichtig zu beachten dass für die IE-Unterstützung eine Readystate-Behandlung erforderlich ist. Alternativ wird die Verwendung der getScript()-Methode von jQuery empfohlen: http://api.jquery.com/jQuery.getScript/.

Das obige ist der detaillierte Inhalt vonWarum wird das native „onload'-Ereignis nicht für mit jQuery geladene Skript-Tags ausgelöst?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn