Как связать событие нагрузки для изображения в 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 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
Вероятно, хорошее решение для всех остальных там!