¿Cómo puedo saber cuándo el contenido cargado con ajax finaliza la carga de imágenes?

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

Pregunta

Estoy cargando html desde una solicitud ajax y algunas etiquetas img en ella.

Necesito saber cuándo las imágenes cargadas en el ajax están completamente cargadas para cambiar el tamaño del contenedor. No sé cuántas imágenes hay en el resultado, por lo que no puedo simplemente verificar el valor .complete .

¿Conoces una solución para esto?

¡Gracias!

Leandro

¿Fue útil?

Solución

Si está utilizando jQuery, el comando $ (window) .load () puede configurar una función para que se llame una vez que se cargan todas las imágenes, de la siguiente manera:

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

Si no está utilizando jQuery, simplemente haría lo que he hecho cuando quiera un poco de su funcionalidad: descárguelo y examine la fuente para ver cómo funciona. . Entonces haz eso :-)

Otros consejos

Las solicitudes XMLHTTP tienen propiedades que puede usar para determinar cuándo se completó la carga. Si está utilizando javascript directamente, deberá asignar una función al evento onreadystatechange. Esto se llama cada vez que cambia el estado. Los estados se almacenan en ReadyState y son: 0 no iniciados 1 carga 2 cargados 3 interactivo 4 Completo

En su función verifica que el estado es 4 y llama a las otras funciones requeridas

JQuery tiene eventos que le indican cuándo ocurrieron ciertas cosas. Ver la documentación de AJAX

Ok, gracias a Pax, he encontrado la solución.

En el evento éxito de la solicitud ajax (usando jQuery), agregué el siguiente código:


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

¡Gracias a los dos!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top