¿Puedo asignar un evento a un div para disparar cuando todos los elementos de la div que contiene han cargado completamente? p.ej. si el div contiene una imagen, activa un evento en el div cuando la imagen se haya cargado por completo. Estoy usando jquery.caso de asignación a DIV cuando se ha cargado completamente
Respuesta
seguro de cómo va a añadir dinámicamente su contenido, pero este ejemplo debe ilustrar cómo podría funcionar.
está utilizando .append()
para simular su contenido dinámicamente cargado. a continuación, después de la anexados, se utiliza .find()
para encontrar las imágenes y .load()
para fijar un controlador de carga para ellos.
Finalmente, devuelve el length
propiedad de las imágenes. Luego, en el controlador de carga, a medida que las imágenes terminan de cargarse, la longitud disminuye. Una vez que llega al 0
, se cargan todas las imágenes y se ejecuta el código dentro de if()
.
Ejemplo:http://jsfiddle.net/ehwyF/
var len = $('#mydiv').append('<img src = "http://dummyimage.com/150x90/f00/fff.png&text=my+image" /><img src = "http://dummyimage.com/160x90/f00/fff.png&text=my+image" /><img src = "http://dummyimage.com/170x90/f00/fff.png&text=my+image" /><img src = "http://dummyimage.com/180x90/f00/fff.png&text=my+image" />')
.find('img')
.load(function() {
if(--len === 0) {
alert('all are loaded');
}
}).length;
De esta manera, se ejecuta el código basándose únicamente en las imágenes en #mydiv
.
Si hay alguna imagen de allí que no eran dinámico, y por lo tanto no deben recibir el evento .load()
, usted debe ser capaz de añadir un filtro para excluir los .not()
la propiedad complete
es true
.
Coloque esto después del .find()
y antes del .load()
.
.not(function(){return this.complete})
Es difícil comprobar que sólo un div, pero puedo sugerir el uso de $(window).load()
para comprobar si todas las imágenes han cargado?
ACTUALIZACIÓN: Si usa ajax, utilice la devolución de llamada para ver cuándo se cargó el json, y luego adjunte $ ("div # id img"). Load() para ver cuándo se cargaron todas las imágenes. El único problema con esto es que he notado que cuando la imagen está almacenada en la memoria caché, el cargador no se activa. :(
Estoy cargando el contenido del div de forma dinámica por lo que no puede usar $ (ventana) .load(). Debería haber dicho en mi pregunta original .. – amateur
Ver mi edición pronto –
Si es sólo una imagen que está queriendo esperar a que se puede cargar la imagen con el Ajax y luego activar el evento en la devolución de llamada Ajax.
captura el proceso de carga de todas las imágenes en el div, allí recaudar algo de contador global en 1. Si ese contador es igual a la cantidad de imágenes de la div ... todas las imágenes terminado de cargar. Debería ser simple usar jQuery.
Esto funcionará sólo para imágenes, sin embargo, otros elementos no tienen proceso de carga.
Para añadir a Shadow idea del Asistente, puede probar con el siguiente código:
var totalImages = $(".yourImageClass").length;
var loadedImages = 0;
$(".yourImageClass").bind("onload", function() {
loadedImages++;
if (loadedImages == totalImages) {
//all images have loaded - bind event to DIV now
$("#yourDiv").bind(eventType, function() {
//code to attach
});
}
});
- 1. cuando está un Highchart completamente cargado?
- 2. ¿Cómo detectar cuando mathjax está completamente cargado?
- 3. SVG: ejecutar el script cuando el documento se ha cargado
- 4. Averiguar cuando un módulo de GWT ha cargado
- 5. ¿Cómo encuentro qué archivo .emacs se ha cargado?
- 6. dyld: Biblioteca de error no se ha cargado Mac OS
- 7. Apache mensaje de error IVY? : Imposible conseguir artefactos cuando los datos no se ha cargado
- 8. incendios Window.loaded antes de que la ventana está completamente cargado
- 9. Detectando cuando el contenido del iframe se ha cargado (navegador cruzado)
- 10. Detectar si el contenido del iframe se ha cargado satisfactoriamente
- 11. ¿Se ha cargado $ .ready antes o después de que se hayan cargado todos los <script> en línea?
- 12. gdb: "No se ha cargado ninguna tabla de símbolos"
- 13. Javascript para detectar cuando una página se ha cargado en otra ventana en Firefox
- 14. iphone: ¿Cómo sé que UIWebView está completamente cargado?
- 15. ¿Se ha cargado todo el paquete en MsDeploy.axd?
- 16. Ejecutar una tarea después de que WebView esté completamente cargado
- 17. Compruebe si el archivo javascript se ha cargado
- 18. cuando se ha activado window.onload
- 19. Expandir div para contener contenido completamente posicionado
- 20. ¿Cómo esperar hasta que WebBrowser esté completamente cargado en VB.NET?
- 21. Javascript: añadir elemento de marco flotante después de la página se ha cargado
- 22. JQuery fade-in a div cuando el usuario se desplaza a ese div
- 23. Lista desordenada que no se alinea completamente a la izquierda en un div
- 24. NumPy: array problema de asignación cuando se utiliza dtype encargo
- 25. ¿Cómo se puede saber cuándo se ha cargado mediante serialización XML?
- 26. ¿Cómo se actualizan los datos en un documento de mangosta que ya se ha cargado?
- 27. Cómo jQuery slidedown una vez que la página ya se ha cargado
- 28. Detectando cuando scrollView se ha desplazado
- 29. IsMouseOver cuando el mouse se ha capturado
- 30. ¿Qué se ha hecho cuando URL.openconnection()?
Este es el mejor método que he encontrado +1 – Blowsie