2010-12-30 14 views
0

私は動的に画像を読み込み、動的にサイズを取得して、jQueryを使ってラッパーの高さと幅を設定しようとしています。画像サイズの問題を取得する

しかし、問題はalert($(".imageContainer").height()0と表示されています。私はこの機能を呼び出すとイメージが読み込まれていないと考えています。

このプロセスは、グリッドのサムネイルをクリックするとモーダルウィンドウがポップアップし、いくつかの簡単なjQueryコードがこのモーダルウィンドウの属性に対応するイメージを表示するように設定します。

としましょう:

$(".thumb-img").click(function(){ 
    $(".bigImage").attr("src","somewhere/"+$(this).attr("data-imageid")+".jpg"); 
    //needs to know whether image has been loaded or not 
    $(".imageContainer").height($(".bigImage").height()); 
    $(".imageContainer").width($(".bigImage").width()); 
}); 

を画像サイズが一致していないと私は動的にそのサイズに応じてサイズを設定する必要があります。

どうすればいいですか?

ありがとうございます。

+0

幅と高さを取得しているところで引用符がありません – Rob

+0

@Rob、実際のコードでは完全です。私はここに書きましたが、忘れました。 – Tarik

答えて

2

ニーズはあなたがloadイベントを使用することができ、画像が が

あなたがイメージがロードされたかどうかを知りたい場合は

をロードしたか否かを知るために(それはあまりにもイメージのために働く):

あなたを介して、すべての画像およびその他のリソースがそれまでにロードされているウィンドウの loadであなたの画像関連のコードを入れて、あなたが安全にすべてのイメージがロードされていると仮定することができます
$(".bigImage").load(function(){ 
    alert(' I am loaded...'); 
}); 

​​
+0

イメージは動的にロードされ、すべてのイメージが同時に読み込まれるわけではありません。ユーザーがサムネイルをクリックすると、その前に大きな画像が読み込まれずに読み込まれた後、他のすべての大きな画像に適用されます。あなたのソリューションは1つのイメージだけで動作し、それだけです。 – Tarik

関連する問題