2013/08/06

[jQuery] 画像の読み込み完了時にloadイベントが発動しない

htmlに記述してある画像を読み込んだら、ある処理を開始するというJavaScriptを書いたところ、処理が行われる時と行われない時でまちまちだった。

キャッシュかなとも思ったが違った。
実際はloadイベントを登録する前に画像の読み込みが終了していた場合、イベントが発動していないのが原因だった。

completeプロパティを調べて、すでに読み込み済みだったら明示的にloadイベントを発動させるという処理を追加して対応した
$('img').load ->
 //画像読み込み時の処理
 //ここにたどり着くまでに画像が読み込み終わっていたら発動しない
 if this.complete //読み込み完了しているかどうか判定するプロパティ
  $(this).load() //自分でloadイベントを起こす
completeというプロパティは知らなかった…
今回の問題はかなり初歩的な部分な気がするが…今まで一度も出会ったことがなかったのか…気づかずに過ごしてきたのか…

参考:
http://www.scollabo.com/banban/jsindex/sample/sample_042.html
http://stackoverflow.com/questions/3588102/jquery-load-not-working-on-my-image

0 件のコメント:

コメントを投稿