2009-08-16 9 views
1

画像の寸法が必要なJQueryプラグインを作成しているうちに、ChromeのようなWebkitブラウザは、画像が並列に読み込まれるため、画像サイズが0になることが多いことがわかりました。イメージがJQueryプラグイン内に確実にロードされるようにする方法は?

私の迅速かつ汚いソリューションは$(window).load()イベントで私のプラグインを呼び出すコードをラップすることでした:

$(document).ready(function() { 
    $(window).load(function() { 
     $('.magnifier').magnifier(); 
    }); 
}); 

にはどうすればプラグイン自体の内部でこれを実装するに行きますか?画像が読み込まれたことを検出する最もクリーンな方法は何ですか?

$.fn.magnifier = function() { 
    var that = this; 
    $(window).load(function() { 
     that.each(function() { 
      $(this).find('img').each(function() { 
       // image would be loaded at this point 
      }); 
     }); 
    }); 
    return this; 
} 

答えて

3

画像は、負荷()イベントを持っています私は完全に理解しているのかわかりませんが、すべての画像がロードされた後でこれが起動します。

$("img").load(function() { 

}); 
1

I:

$(document).ready(function() { 
    $('.magnifier').magnifier(); 
}); 

$.fn.magnifier = function() { 
    return this.each(function() { 
     $(this).find('img').load(function() { 
      // do something to image when it is loaded 
     }); 
    }); 
} 

あなたは、単にプラグイン自体の内部でwindow.load周りのコードをラップすることができます:あなたのような何かができるよう

関連する問題