jQuery IMGプリロードはFirefoxで動作しません
-
04-10-2019 - |
質問
私は最近、実際の画像がロードされるまでロードIMGを表示できる小さなjQueryスニペットを行いました。
スニペットは、firefoxではなくサファリ、クロムで動作しているようです。
Firefoxはaのみを表示します 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();
});
何かアイデアはなぜですか?
解決
あなたはFFで正確に何が起こっているのかを言っていませんが、以下は問題の1つです。から jQueryドキュメント
画像がブラウザキャッシュからロードされている場合、ロードイベントがトリガーされない可能性があります。この可能性を説明するために、画像の準備ができた場合にすぐに発射する特別な負荷イベントを使用できます。 Event.special.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");
});
もちろん、プラグインは他のいくつかのシナリオや他のシナリオを処理することとともに同じことをしているようです。
所属していません StackOverflow