Rileva il carico dell’immagine

È ansible rilevare una volta che un’immagine è stata caricata con jQuery?

Puoi usare il gestore di eventi .load() , come questo:

 $("#myImg").load(function() { alert('I loaded!'); }).attr('src', 'myImage.jpg'); 

Assicurati di collegarlo prima di impostare la sorgente, altrimenti l’evento potrebbe essere stato triggersto prima di colbind un gestore per ascoltarlo (ad esempio il caricamento dalla cache).

Se ciò non è fattibile (impostando lo src dopo l’associazione), assicurati di controllare se è caricato e spara da solo, in questo modo:

 $("#myImg").load(function() { alert('I loaded!'); }).each(function() { if(this.complete) $(this).load(); }); 

È altrettanto semplice usare un semplice Javascript:

  // Create new image var img = new Image(); // Create var for image source var imageSrc = "http://example.com/blah.jpg"; // define what happens once the image is loaded. img.onload = function() { // Stuff to do after image load ( jQuery and all that ) // Within here you can make use of src=imageSrc, // knowing that it's been loaded. }; // Attach the source last. // The onload function will now trigger once it's loaded. img.src = imageSrc; 

Ho fatto ricerche su questo per molto tempo, e ho trovato questo plugin per aiutare meravigliosamente questo: https://github.com/desandro/imagesloaded

Sembra un sacco di codice, ma … Non ho trovato altro modo per controllare quando un’immagine è stata caricata.

Usare la funzione jQuery on (‘load’) è il modo giusto per verificare se l’immagine è stata caricata. Ma attenzione che la funzione on (‘load’) non funzionerà se l’immagine è già in cache.

 var myImage = $('#image_id'); //check if the image is already on cache if(myImage.prop('complete')){ //codes here }else{ /* Call the codes/function after the image is loaded */ myImage.on('load',function(){ //codes here }); } 

È facile con jquery:

 $('img').load(function(){ //do something }); 

Se provato con:

 $('tag')html().promise().done(function(){ //do something }) ; 

ma quello non controllerà se l’immagine è caricata. Quel fuoco fatto se il codice è caricato. Altrimenti puoi verificare se il codice è stato eseguito, quindi triggersre la funzione di caricamento img e controllare se l’immagine è realmente caricata. Quindi facciamo una combinazione di entrambi:

 $('tag')html('').promise().done(function(){ $('img').load(function(){ //do something like show fadein etc... }); }) ; 

Penso che questo possa aiutarti un po ‘:

  $('img').error(function(){ $(this).attr( src : 'no_img.png'); }) 

Quindi, se caricato, verrà mostrata l’immagine originale. In altri – verrà mostrata l’immagine, che contiene infatti un’immagine con arresto anomalo o 404 HTTP Header.