Onkel Schnitzel: jQuery: img.on('load') auf Funktion beschränken

Beitrag lesen

Hallo molily,

danke für deine schnelle Hilfe. Unfassbar, was du alles weißt.

Wenn du das nicht willst, musst du den Handler beim ersten load wieder entfernen. jQuery hat mit one eine Extra-Methode dafür. Diese entfernt den Handler nach dem ersten Ereignis des Types automatisch.

Was es nicht alles gibt. Das funktioniert tatsächlich.

Event-Handling hat mit dem Scope von Funktionen nichts zu tun. img.on('load', function(){}) überwacht sämtliche load-Ereignisse beim angegebenen Element, solange das Element existiert.

Aah, ok. Schwerer Denkfehler.

Aber offenbar greift das Mistvieh wohl global.

Nein, das kann nicht sein.

War blöd ausgedrückt. Ich meinte sinngemäß das, was du auch geschrieben hast: "Wenn du später das img-Element wiederverwendest und die src änderst, passiert dort ein weiteres load-Ereignis und der Handler wird aufgerufen.

Das ist klar. Load-Ereignisse steigen nicht auf (es gibt keine Bubbling-Phase).

http://www.w3.org/TR/html5/embedded-content-0.html#img-load
http://www.w3.org/TR/html5/webappapis.html#fire-a-simple-event

Puuhh, da platzt mir der Kopf :-/ Ich glaub dir das einfach mal.

Nochmal vielen Dank.

Gruß

Onkel Schnitzel