سؤال

لدي موقع ويب محمول يعمل على تشغيل 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 ربما حل جيد لأي شخص آخر هناك!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top