2012-04-04 99 views
2

我想獲得的圖像的實際寬度...這裏是有問題的jQuery - 獲得圖像的寬度

<img src="upload/<?php echo $array['image'] ?>" height="200" class="active" /> 

形象,這是我在jQuery的

$(window).bind('load', function() { 
    var img_width = $("#slideshow").find("img").width(); 
    $("#slideshow img").css("width", img_width); 
    alert(img_width); 
}); 
嘗試

警報返回255每次我有試過這個圖像,這是div幻燈片的寬度。這些圖像的高度都爲200,他們將有不同的寬度,我的問題是,如何獲得這些寬度?

感謝, Ĵ

+0

檢查,這可能已經回答不已:http://stackoverflow.com/questions/2395931/how-do-i-get-actual-image-width-and-height-using-jquery – sakhunzai 2012-04-04 18:22:39

回答

0

如果#slideshow包含不止一個img,您的來電$("#slideshow").find("img").width();將只返回第一img寬度,在這種情況下,必須在200

1

這應該填充一個數組所有圖像的寬度:

$(window).bind('load', function() { 
    var img_widths = []; 
    var imgs = $("#slideshow").find("img"); 
    imgs.each(function() { 
     img_widths.push($(this).width()); 
    }); 
}); 
+3

'。 bind()'是過時的,應該使用'.on()'來代替。 http://api.jquery.com/bind/ – Sparky 2012-04-04 18:29:28

+0

嗯,這並不似乎適用於我的圖像 – user1274810 2012-04-04 18:31:05

+0

http://getfirebug.com/ – JoshNaro 2012-04-04 18:53:40

0
var $imgs = $('img'); 
$imgs.load(function(){ 
    console.log($(this).width()); 
}); 
+0

當我檢查元素,寬度屬性不會出現:( – user1274810 2012-04-04 18:34:47

0

我GOI恩給你你沒有要求的答案 - 但我認爲是更好的解決方案。

只因爲我看到你正在使用PHP的圖像本身 - 爲什麼不只是寫用PHP imagesize信息。它更好,不會等待負載。

<?php 
// path from document root seems to work best for me 
list(, , , $attr) = getimagesize($_SERVER['DOCUMENT_ROOT'] . "/upload/".$array['image']); 
?> 
<img src="upload/<?php echo $array['image'] ?>" <?php echo $attr; ?> class="active" /> 
+0

那得到從服務器的實際圖像的大小,我所期待的圖像的寬度時,高度爲200 – user1274810 2012-04-04 18:49:29