2011-11-14 65 views
3

我jQuery代碼:jQuery的獲取圖像的寬度

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"/> 

等等概念是我我加載不同的圖片src爲每個使用jQuery,然後我做一些寬度和高度的計算。問題是我得到的圖像值與前一個計數器i。我做了一個臨時的解決方案,通過把

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

但它不總是工作,並導致不必要的超時。 而不是警報有另一個使用img寬度和高度的函數,我只是爲了方便而寫了alert。任何幫助感謝!

+0

可能重複[獲取真實圖像的寬度和高度的JavaScript在Safari /鉻?](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歡迎您。 –