2011-12-19 43 views
6

このサイトからjquery lazyloadプラグインをダウンロードしますhttp://www.appelsiini.net/projects/lazyloadJquery lazyloadプラグインとコールバック関数

彼らの文書から私は誰もコールバックを使用することができないか、lazyloadプラグインを使用することができませんでした。

私のHTMLは

<div id="gallery" class="busy"><img src="blah.jpg" /></div> 
<div id="gallery" class="busy"><img src="blah2.jpg" /></div> 
<div id="gallery" class="busy"><img src="blah3.jpg" /></div> 

のように見えたとし

$("#gallery img").lazyload(); 

クラスのような私のスクリプト忙しいだけのdivの中心に忙しい画像を設定します。コールバックが必要なので、画像のダウンロードが完了したかどうかを検出する必要があります。完了したら、画像タグの対応する親divからクラスを削除します。

私はlazyloadでコールバックを実装する方法を教えてくださいまた、私は画像タグの対応する親divからクラスを削除することができますサンプルコードが必要です。

ありがとう

+1

ur_htmlマークアップが間違っている、IDが異なるdivsのためにユニークでなければならない –

+0

私は各画像のダウンロード完了時に毎回発生するコールバック関数があるという別の問題を尋ねましたか? –

答えて

12

私は同じ質問がありました。いくつかの検索をして、ここに来て、答えを見つけました。これは私が持っているワットで、私のために働きます:

$(this).lazyload({ 
    effect : 'fadeIn', 
    load : function() 
    { 
     console.log($(this)); // Callback here 
    } 
}); 

希望します。

+1

素敵です!スムーズに動作します。 – dnns

+0

トリガーするイベント詳細情報http://www.appelsiini.net/projects/lazyload – zloctb

0

リック・デ・グラフの答えは私のためにほとんどそれでした。

私にとっての問題は、です。プレースホルダイメージの読み込みは、でも呼び出されました。私の場合は問題でした。私は最終的に読み込まれた画像だけにクラスを追加したいと思っていました。私はそれが私のために動作させるためにこれを追加しました:

jQuery("img.lazy").lazyload({ 
      effect : 'fadeIn', 
      load : function() 
      { 
       if (jQuery(this).attr("src") != "data:image/gif;base64,R0lGODlhZABlAIAAAPn5+QAAACH5BAAAAAAALAAAAABkAGUAAAJ0hI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqn1Kr1is1qt9yu9wsOi8fksvmMTqvX7Lb7DY/L5/S6/Y7P6/f8vv8PGCg4SFhoeIiYqLjI2Oj4CBnZVQAAOw==") { 
        jQuery(this).addClass("visible-image");     
       } 
      } 
     }); 

ロードされた画像データの場合:イメージは、私のクラスを追加する他に、何もしません。

関連する問題