Предварительная загрузка JQuery IMG не работает в FireFox - PullRequest
0 голосов
/ 21 сентября 2010

Недавно я сделал небольшой фрагмент jQuery, который позволяет мне показывать загрузочный img до тех пор, пока не загрузится реальное изображение.

Фрагмент работает в Safari, Chrome, но не в FireFox.

FireFox отображает только loading alt и никогда не переключается на загруженное изображение.

Вот фрагмент

var loading = $('<img src="/media/ajax-loader.gif" alt="loading" />');
    $('.thumbnail').each(function(){
        var loadIMG = loading.clone();
            $(this).after(loadIMG).load(function(){
                $(this).fadeIn('fast');
                loadIMG.hide();
        }).hide();
    });

Есть идеи, почему?

1 Ответ

1 голос
/ 21 сентября 2010

Вы не сказали, что именно происходит на FF, но ниже может быть одна из проблем. Из документации jquery

Возможно, что событие загрузки не будет срабатывать, если изображение загружается из кеша браузера. к учитывать эту возможность, мы можем использовать специальное событие загрузки, которое запускает немедленно, если изображение готово. event.special.load в настоящее время доступно как плагин.

Вот ссылка для плагина.

Edit:

На основе комментариев к событию загрузки, попробуйте ниже:

$('.thumbnail').each(function(){
        var loadIMG = loading.clone();
            $(this).after(loadIMG).load(function(){
                $(this).fadeIn('fast');
                loadIMG.hide();
        }).hide();
        if (this.complete) $(this).trigger("load");
});

Конечно, плагин, кажется, делает то же самое наряду с некоторыми другими сценариями, а также.

...