Come posso sapere quando ajax il contenuto caricato termina il caricamento delle immagini?

StackOverflow https://stackoverflow.com/questions/809672

Domanda

Sto caricando html da una richiesta Ajax e alcuni tag img in esso.

Devo sapere quando le immagini caricate in ajax sono completamente caricate per ridimensionare il contenitore. Non so quante immagini siano presenti nel risultato, quindi non posso semplicemente controllare il valore .complete .

Conosci una soluzione per questo?

Grazie!

Leandro

È stato utile?

Soluzione

Se stai usando jQuery, il comando $ (window) .load () può impostare una funzione da chiamare una volta caricate tutte le immagini, come segue:

$(window).load(
    function() {
        // weave your magic here.
    }
);

Se non stai usando jQuery, farei solo quello che ho fatto quando voglio un po ' un po' della sua funzionalità: scaricalo ed esamina il sorgente per vedere come lo fa . Quindi fallo :-)

Altri suggerimenti

Le richieste XMLHTTP hanno proprietà che è possibile utilizzare per determinare quando il caricamento è stato completato. Se si utilizza javascript direttamente, è necessario assegnare una funzione all'evento onreadystatechange. Questo viene chiamato ogni volta che lo stato cambia. Gli stati sono memorizzati in ReadyState e sono: 0 Non iniziato 1 caricamento 2 caricato 3 interattivo 4 Completo

Nella tua funzione controlli che lo stato sia 4 e chiami le altre funzioni richieste

JQuery ha eventi che ti dicono quando si sono verificate determinate cose. Visualizza la documentazione AJAX

Ok, grazie a Pax, ho trovato la soluzione.

All'evento successo della richiesta ajax (usando jQuery), ho aggiunto il seguente codice:


$('img', this).load(function() {
    resize_element(this);
});

Grazie a tutti e due!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top