Как связать событие загрузки для изображения в jQueryMobile - PullRequest
0 голосов
/ 07 января 2011

У меня есть мобильный веб-сайт, на котором работает jQuery Mobile 1.0a2, и в настоящее время я тестирую в Mobile Safari для Прошивки 4.1 через iPhone Simulator.

Кажется, я не могу связать событие загрузки дляimage.

У меня есть простая галерея миниатюр и большое изображение.Когда вы нажимаете на миниатюру, она меняет атрибут 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 Simulator, упомянутом выше.

Дляссылка:

ОБНОВЛЕНИЕ: Я экспериментирую с JQueryСбой загрузки изображения на симуляторе iPhone MobiOne , который объясняет, как реализовать .load вручную, "проверяя .complete".

1 Ответ

1 голос
/ 07 января 2011

Я изменил структуру моего 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 Image на симуляторе iPhone MobiOne , но ручное включение load через .complete, вероятно, является хорошим решением для всех остальных.там!

...