Wie zu binden Load-Ereignis für Bild in jQueryMobile
-
30-09-2019 - |
Frage
Ich habe eine mobile Website jQuery Mobile 1.0a2 laufen und ich bin testet derzeit in Mobile Safari für Firmware 4.1 über den iPhone Simulator.
Ich kann scheint nicht zu binden an das Ladeereignis für ein Bild.
ich eine einfache Galerie von Thumbnails haben und ein großes Bild. Wenn Sie auf einem Klicken auf Miniatur es das src
Attribut des Haupt img
Die js für diese Anwendungen der live('click'
Methode zu binden und es funktioniert gut.
$('.gallery-navigation img').live('click',function() {
// change source of main image to new
$.mobile.pageLoading(); // show jquerymobile loading message
});
Mein Problem ist, dass ich Feedback zu diesem Klick, so dass ich eine Lademeldung (zur Verfügung gestellt von jquerymobile) zeigen wollte, und versteckt es dann einmal das Bild geladen.
Wo #gallery_image_large
ist die eigentliche <img>
wo der src
ändert, habe ich versucht, die folgenden:
$("#gallery_image_large").bind("load", function () {
$.mobile.pageLoading(true); // hide jquerymobile loading message
});
Das funktioniert in Safari auf meinem Desktop aber nicht in der iPhone Simulator oben erwähnt.
Zum Vergleich:
UPDATE: Ich experimentiere mit JQuery Bild Last versagt auf MobiOne iPhone Simulator , die erläutert, wie die .load
manuell implementieren, indem „Überprüfung .complete
“.
Lösung
änderte ich die Struktur meiner jquery und es scheint es behoben zu haben!
$('#gallery_image_large').one('load',function() {
try { // a grade
$.mobile.pageLoading(true);
} catch(err) { // low grade
}
}).attr('src',full_src);
(wie Sie sehen können, habe ich für einen try { .. } catch { .. }
opt'd zu überprüfen jquerymobile verfügbar ist.
Auch wenn ich nicht die Lösung verwendet haben (direkt) von JQuery Bild Last versagt auf MobiOne iPhone Simulator , die manuelle Abfeuern von load
über .complete
ist wahrscheinlich eine gute Lösung für alle anderen da draußen!