Estoy cambiando el img src una vez que he cargado un archivo json, todo esto funciona bien. Pero quiero asegurarme de que la imagen esté completamente cargada. ¿Qué puedo hacer usando:jquery devolución de llamada en carga de imagen al cambiar el src
.one("load",function(){
alert("image has load yay");
});
Pero después de leer varios mensajes que no todos los navegadores disparan la carga si la imagen está en la memoria caché. Parece que no estoy obteniendo este problema en el navegador que están destinados a causar este problema. Pero solo he probado FF (6.0.2), Chrome (13.0.7) y Safari (5.0.5) en un mac. Ahora estoy seguro de que IE debe tener un problema y solo está relacionado con PC. Estoy ejecutando versiones bastante recientes de los navegadores, así que ha cambiado algo en esto para ahora disparar la carga. ¿O mi otro pensamiento es que estoy ejecutando la última versión de jquery (1.6.3) que se ha cambiado .load?
Espero que todo tenga que ver con ejecutar el último jquery, pero si no es así y es un problema del navegador anterior, entonces tengo que poner una solución. He intentado un par de solución en este sitio, por ejemplo: jQuery loading images with complete callback Y también algunos de los comentarios en la página .load api: http://api.jquery.com/load-event/#comment-30211903
Pero me parece que no puede llegar a trabajar. El primero no funciona en absoluto y el segundo parece fallar con .each().
Este es el código que tengo hasta ahora que parece funcionar bien, pero no puedo estar seguro ya que tal vez un problema con el navegador anterior.
$.getJSON(jsonURL, function(json) {
$("a.imgZoom img").attr("src", json[imageID].largeImage).one("load",function(){
alert("the image has loaded");
//do something here
});
$("a.imgZoom").attr("href", json[imageID].largeImage);
})
Gracias de antemano por cualquier ayuda.
B
Gracias por la respuesta, lo siento no 100% seguro de cómo puedo llamarlo antes. Mirar tu ejemplo tampoco ayudó :( – Ben
Agregué un ejemplo a mi respuesta que parece funcionar. – jfriend00
Gracias jfriend00, funcionó. Por supuesto, no estoy seguro si solucionar los posibles problemas con .load como mi versión de trabajo. Pero tomaré su palabra para eso. – Ben