画像読み込み時のjQueryコールバック(画像がキャッシュされている場合でも)質問する

画像読み込み時のjQueryコールバック(画像がキャッシュされている場合でも)質問する

私はやってみたいです:

$("img").bind('load', function() {
  // do stuff
});

しかし、画像がキャッシュから読み込まれたときには、ロード イベントは発生しません。jQueryのドキュメント提案するプラグインこれを修正するために、それは機能しません

ベストアンサー1

srcすでに設定されている場合、イベント ハンドラーがバインドされる前に、キャッシュされたケースでイベントが起動します。これを修正するには、.complete次のように、 に基づいてイベントのチェックとトリガーをループします。

$("img").one("load", function() {
  // do stuff
}).each(function() {
  if(this.complete) {
      $(this).load(); // For jQuery < 3.0 
      // $(this).trigger('load'); // For jQuery >= 3.0 
  }
});

変化に注目してください.bind().one()イベント ハンドラーが 2 回実行されないようにするためです。

おすすめ記事