Не удается загрузить изображение JQuery на симуляторе iPhone MobiOne
Я динамически обновляю изображение на сайте JQTouch, используя следующий код:
$('#sv_map')
.one('load', function() {
$(this).fadeIn();
})
.attr('src', imgURL);
Получил основы этого отсюда. sv_map
это изображение, и imgURL
указывает на действительный, существующий файл JPG.
Этот код работает, как и ожидалось, во всех основных браузерах (Chrome, Safari, Firefox, IE), а также на реальных устройствах (несколько iPhone и iPod).
Я не хочу делать вывод, что в симуляторе есть ошибка (кажется, что такая тривиальная проблема). Какой дополнительный код необходим для загрузки файла изображения? У кого-нибудь был подобный опыт с MobiOne?
1 ответ
Решение
Не все браузеры запускают load
событие правильно (особенно при загрузке из кэша), поэтому вам нужно будет сделать это вручную, проверив .complete
на изображении вот так:
$('#sv_map').one('load', function() {
$(this).fadeIn();
}).attr('src', imgURL)
.each(function() {
if(this.complete) $(this).load();
});