Cómo enlazar evento de carga de imagen en jquery mobile
-
30-09-2019 - |
Pregunta
Tengo un sitio web móvil que ejecute 1.0a2 jQuery Mobile y actualmente estoy probando en Mobile Safari para el Firmware 4.1 a través del simulador de iPhone.
Me parece que no puede se unen al evento de carga para una imagen.
Tengo una galería sencilla de imágenes en miniatura y una imagen de gran tamaño. Al hacer clic en la miniatura cambia el atributo de la src
img
principal
Los js para que utiliza el método live('click'
para atar y funciona muy bien.
$('.gallery-navigation img').live('click',function() {
// change source of main image to new
$.mobile.pageLoading(); // show jquerymobile loading message
});
Mi problema es que necesito comentarios sobre este clic, así que quería mostrar un mensaje de carga (proporcionado por jquery mobile) y luego ocultar una vez se carga la imagen.
Cuando #gallery_image_large
es la <img>
real donde el src
está cambiando, he intentado lo siguiente:
$("#gallery_image_large").bind("load", function () {
$.mobile.pageLoading(true); // hide jquerymobile loading message
});
Esto funciona de Safari en mi escritorio, pero no en el simulador de iPhone se ha mencionado anteriormente.
A modo de referencia:
ACTUALIZACIÓN: estoy experimentando con jQuery carga de la imagen falla en el iPhone MobiOne simulador, que explica cómo implementar la .load
manualmente por "comprobar .complete
".
Solución
Me cambió la estructura de mi jQuery y se parecía haber arreglado!
$('#gallery_image_large').one('load',function() {
try { // a grade
$.mobile.pageLoading(true);
} catch(err) { // low grade
}
}).attr('src',full_src);
(como se puede ver, opt'd para un try { .. } catch { .. }
para verificar jquery mobile está disponible.
Aunque yo no usar la solución (directamente) a partir de JQuery carga de la imagen falla en MobiOne iPhone simulador , el disparo manual de los load
través .complete
es probablemente una buena solución para cualquier otra cosa por ahí!