Image-Onload für statische Bilder

8

Ich weiß, dass für das Image-Onload zu arbeiten, müssen Sie den Quellcode festlegen, nachdem der Onload-Handler angefügt wurde. Ich möchte jedoch Onload-Handler an Bilder anfügen, die in meinem HTML statisch sind. Im Moment mache ich das auf folgende Weise (mit jQquery):

%Vor%

%Vor%

Aber das ist ziemlich hässlich und hat den offensichtlichen Fluss, dass es nur für Selektoren gemacht werden kann, die nur einem Bild entsprechen. Gibt es noch einen anderen, schöneren Weg?

bearbeiten
Was ich damit meinte, dass es nur für Selektoren gemacht werden kann, die nur einem Bild entsprechen, ist Folgendes:

%Vor%

%Vor%

Beide Bilder haben src = 'picture.jpg'

    
Pim Jager 11.03.2009, 00:00
quelle

4 Antworten

10

Sie können das Ereignis (oder seinen Handler) direkt auslösen, indem Sie .trigger() oder .load() aufrufen.

Wenn Sie wissen, dass Sie das Ereignis wollen, weil Sie wissen, dass die Bilder bereits geladen sind, dann können Sie es so machen:

%Vor%

Wenn Sie Ihr Skript auf Dokument bereit oder einen Moment, wo es noch nicht klar ist, ob die Bilder da sind oder nicht, dann würde ich etwas wie folgt verwenden:

%Vor%

Seien Sie gewarnt, dass das Ladeereignis Blasen wirft (jQuery 1.3), und Sie möglicherweise einen Last-Handler für das Dokument vorzeitig auslösen, wenn Sie die Blase im img-Handler nicht abbrechen.

Zur Erinnerung: Die img.src=img.src triggernde Lösung wird in Safari leider nicht korrekt funktionieren. Sie müssen src auf etwas anderes setzen (wie # oder ungefähr: leer) und dann zurück, damit das erneute Laden geschieht.

    
Borgar 11.03.2009, 01:55
quelle
3

Okay, ich habe Borgars Antwort in ein Plugin umgewandelt, hier ist es:

%Vor%     
Pim Jager 17.03.2009 19:47
quelle
0

Ich denke, das ist wirklich eine Frage über jQuery-Selektoren. Wenn Sie alle Ihre Bildelemente abgleichen möchten, können Sie img anstelle von #img1 als Selektor verwenden.

    
Ken Browning 11.03.2009 00:04
quelle
0

Fügen Sie eine Klasse zu Bildern hinzu, für die Sie diese Funktionalität wünschen, und verwenden Sie diese Klasse im jQuery-Selektor.

%Vor%     
james 11.03.2009 00:08
quelle

Tags und Links