Не удается загрузить изображение 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();
            });
Другие вопросы по тегам