2012-03-26 1 views

Antwort

2

sollten Sie klagen die load event

$('img').load(function(){ 
    //here do what you need to do when the img is loaded 
}); 

gibt es einige Einschränkungen

Caveats der Veranstaltung laden, wenn sie mit Bildern verwendet

Eine gemeinsame Herausforderung Entwickler versuchen, die .load zu lösen unter Verwendung von() Verknüpfung ist eine Funktion auszuführen, wenn ein Bild (oder eine Sammlung von Bilder) vollständig geladen haben. Es gibt mehrere bekannte Vorbehalte mit das ist zu beachten. Diese sind:

  • Es ist nicht konsequent arbeiten noch zuverlässig Cross-Browser
  • Es ist nicht richtig in WebKit abfeuert, wenn das Bild src in Bezug auf die gleiche src eingestellt ist, bevor
  • Es ist nicht richtig Blase der DOM-Baum
  • kann aufhören, für Bilder zu schießen, die bereits im Cache des Browsers leben
+0

Dies ist richtig, aber seien Sie vorsichtig, da die jQuery 'Load' Methode ziemlich unzuverlässig ist. Stellen Sie sicher, dass Sie Ihr Skript über den Browser testen. +1 –

+0

@BenCarey ja ich habe den "caveat" hinzugefügt :) –

+0

Ich sah eine Sekunde nachdem ich kommentiert habe! :-) –

0

Sie können etw wie folgt tun:

var files = ['a.jpg','b.png']; //defines all assets needed 

$.each(files,function(){ 
    var tmp = new Image(); 
    tmp.src = this; //creates a new dummy object 
    tmp.on('load',function(){ 
    var i = files.indexOf(this); 
     files.splice(i,1); //when dummy object has loaded it gets removed from array 
     if (!files.length){ //when array is empty we're all set 
     alert('Preloading done!'); 
     } 
    }); 
});