2011-11-14 16 views
3

私のjqueryのコード:jqueryの取得画像の幅のsrc変更後

img[i]='img-src'; 
$("#popimage1").attr("src",img[i]); 
alert($("#popimage1").width());  //doesn't give the width of the current image, but it gives for the previous, and for first null 

私のhtmlコード:

<img src="" id="popimage1"/> 

ので、コンセプトは、私はその後、私はjQueryを使ってそれぞれに異なる画像srcをロードし、ということです私は幅と高さでいくつかの計算を行います。問題は、前のカウンタiで画像の値を取得することです。

$("#popimage1").hide(); 
    setTimeout(alert($("#popimage1").width(),2000); 
    $("#popimage1").show(); 

ただし、常に動作しないため、不要なタイムアウトが発生します。警告の代わりに imgの幅と高さを使用する別の関数があります。私はあなたの便宜のために警告を書きました。どんな助けにも感謝!

+0

可能重複取り扱い試してみてください[サファリ/ ChromeでJavaScriptを使用して実際の画像の幅と高さを取得する?](http://stackoverflow.com/questions/318630/get-real-image -width-and-height-with-javascript-in-safari-chrome) – Blazemonger

+0

本当に、私はそれを読んだ.. – user666

+0

答えを使ってみましたか?それはあなたの目的に役立つはずです。 – Blazemonger

答えて

9

最初に画像が読み込まれるまで待つ必要があります。

これを試してください。

img[i] = "img-src"; 
$("#popimage1").attr("src", img[i]).load(function() { 
    alert($("#popimage1").width()); 
}); 
+0

ありがとうございます!私はload()を自分でチェックします! – user666

+0

ありがとう!私に時間を救った – Shide

1

イメージソースの変更は非同期であるため、すぐには戻りません。

load()

$("#popimage1").load(function() { 
    alert($(this).width()); 
}); 
+0

これは正解ですありがとうございます.. – user666

+0

@greek_no_moneyようこそ。 –

関連する問題