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

StackOverflow https://stackoverflow.com/questions/4627438

Вопрос

У меня есть мобильный веб-сайт 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 Image Load не удается на Mobione iPhone Simulator, что объясняет, как реализовать .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 Image Load не удается на Mobione iPhone Simulator, ручная стрельба load через .complete Вероятно, хорошее решение для всех остальных там!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top