0

最近、実際の画像が読み込まれるまで読み込み中のimgを表示できる小さなjQueryスニペットを作成しました。

スニペットはSafari、Chromeで機能するようですが、FireFoxでは機能しません。

FireFoxはloadingaltのみを表示し、ロードされた画像に切り替わることはありません。

これがスニペットです

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

なぜ何かアイデアはありますか?

4

1 に答える 1

1

FFで何が起こっているのか正確には言っていませんが、以下が問題の1つである可能性があります。jqueryのドキュメントから

画像がブラウザのキャッシュから読み込まれる場合、読み込みイベントがトリガーされない可能性があります。この可能性を説明するために、イメージの準備ができたらすぐに起動する特別なロードイベントを使用できます。event.special.loadは現在、プラグインとして利用できます。

プラグインのリンクは次のとおりです。

編集:

loadイベントからのコメントに基づいて、以下を試してください。

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

もちろん、プラグインは他のいくつかのシナリオを処理するのと同様に同じことをしているようです。

于 2010-09-21T07:33:17.687 に答える