Ich habe ein paar Probleme, wenn ein Bild geladen wurde.
Mir wurde gesagt, dass die folgende Funktion funktioniert, aber nichts tut.
%Vor%Es gibt keine Fehler in meinem Code. Alles andere in meinem Skript funktioniert großartig.
Mein HTML sieht so aus.
%Vor%Habe ich die falsche JQuery-Funktion? Es sollte auch beachtet werden, dass die Sichtbarkeit auf "Versteckt" eingestellt ist. Aber selbst wenn es sichtbar ist, gibt es keine Warnung.
Irgendwelche Ideen?
Das load
-Ereignis eines Bildes wird gefeuert, wenn es geladen wird (doh!), und kritisch, wenn Sie Ihren Handler nicht einbinden, bevor er geladen wird, wird Ihr Handler nicht kommen namens. Browser laden Ressourcen parallel, so dass Sie nicht sicher sein können (selbst in jQuerys ready
-Ereignis, dass das DOM der Seite bereit ist), dass das Bild nicht bereits geladen wurde, wenn Ihr Code ausgeführt wird.
Sie können die Eigenschaft complete
des Bildobjekts verwenden, um zu wissen, ob es bereits geladen wurde, also:
Es kann sogar eine Wettlaufsituation geben, wenn der fragliche Browser Multithread-Ladevorgänge tatsächlich ausführt, bei denen die Bildladung in einem anderen Thread als dem Javascript-Thread auftreten kann.
Wenn der Selektor mehrere Bilder enthält, müssen Sie natürlich damit umgehen. Ihr Selektor sieht so aus, als ob er nur einem entspricht, also ...
Bearbeiten Diese Version erlaubt mehrere Bilder, und ich denke, dass sie alle Nicht-Javascript-Rennbedingungen behandelt (und natürlich sind keine Javascript Race-Bedingungen, Javascript selbst ist Single-Threading in Browsern [es sei denn, Sie verwenden die neuen Web-Worker Zeug] ):
%Vor%Ein paar Anmerkungen:
event
ab; Sie könnten es ändern, um dies zu tun, wenn Sie möchten, aber natürlich würde es kein Ereignis in dem Fall geben, in dem das Bild bereits geladen ist, so dass es von begrenztem Nutzen wäre. one
anstelle von bind
und unbind
verwenden, aber ich mag die Klarheit und ich bin paranoid. : -) Tags und Links jquery