كيفية ربط حدث تحميل للصورة في jQueryMobile
-
30-09-2019 - |
سؤال
لدي موقع ويب محمول يعمل على تشغيل jQuery Mobile 1.0a2 وأختبر حاليًا في Safari للهاتف المحمول للبرامج الثابتة 4.1 عبر محاكاة iPhone.
لا يبدو لي أن يرتبط بحدث التحميل لصورة ما.
لدي معرض بسيط من الصور المصغرة وصورة كبيرة. عند النقر فوق صورة مصغرة ، فإنه يغير src
سمة الرئيسية img
JS لذلك يستخدم live('click'
طريقة لربط وتعمل على ما يرام.
$('.gallery-navigation img').live('click',function() {
// change source of main image to new
$.mobile.pageLoading(); // show jquerymobile loading message
});
مشكلتي هي أنني بحاجة إلى ملاحظات حول هذه النقر ، لذلك أردت إظهار رسالة تحميل (مقدمة من jQueryMobile) ثم إخفاءها بمجرد تحميل الصورة.
أين #gallery_image_large
هو الفعلي <img>
أين ال src
يتغير ، جربت ما يلي:
$("#gallery_image_large").bind("load", function () {
$.mobile.pageLoading(true); // hide jquerymobile loading message
});
يعمل هذا في Safari على سطح المكتب الخاص بي ولكنه لا في جهاز محاكاة iPhone المذكور أعلاه.
كمرجع:
تحديث: أنا أجرب مع فشل تحميل صورة jQuery على محاكاة Mobione iPhone, ، وهو ما يفسر كيفية تنفيذ .load
يدويًا عن طريق "التحقق .complete
".
المحلول
لقد غيرت هيكل jQuery الخاص بي ويبدو أنه تم إصلاحه!
$('#gallery_image_large').one('load',function() {
try { // a grade
$.mobile.pageLoading(true);
} catch(err) { // low grade
}
}).attr('src',full_src);
(كما ترون ، أختار ل try { .. } catch { .. }
للتحقق من jQueryMobile متاح.
على الرغم من أنني لم أستخدم الحل (مباشرة) من فشل تحميل صورة jQuery على محاكاة Mobione iPhone, ، إطلاق يدوي ل load
عبر .complete
ربما حل جيد لأي شخص آخر هناك!