Domanda

Recentemente ho fatto un piccolo frammento di jQuery che mi permette di mostrare un IMG di carico fino a quando viene caricata l'immagine reale.

Il frammento sembra funzionare in Safari, Chrome, ma non FireFox.

FireFox visualizza soltanto un alt loading e non passa all'immagine caricata.

Ecco il frammento di

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();
    });

Tutte le idee perché?

È stato utile?

Soluzione

Non hai detto che cosa esattamente è happing su FF, ma al di sotto può essere uno dei problemi. Da jQuery documentazione

  

E 'possibile che l'evento di carico   non sarà attivato se l'immagine è   caricati dalla cache del browser. Per   tenere conto di questa possibilità, siamo in grado di   utilizzare un evento carico di speciale che gli incendi   immediatamente se l'immagine è pronta.   event.special.load è attualmente   disponibile come plugin.

Ecco il link per il plugin.

Modifica:

Sulla base di osservazioni da evento di caricamento, prova di seguito:

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

Naturalmente, il plug-in sembra fare stessa cosa insieme con la gestione di alcuni altri scenari come pure.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top