2010-10-26 46 views
13

Tôi đã đặt css chiều cao của hình ảnh thành một giá trị nhất định và chiều rộng tự động sửa đổi sao cho tỷ lệ khung hình được giữ nguyên. Tôi đang sử dụng hàm .width() jquery để lấy chiều rộng của hình ảnh sau khi css thay đổi kích cỡ hình ảnh. trong trình duyệt Firefox và trình duyệt internet, công trình này tuyệt vời nhưng trong chrome và safari chiều rộng được trả lại luôn bằng 0 cho mỗi hình ảnh. mã mà tôi đang sử dụng như sau:jquery .width() chrome và safari vấn đề

var total=0; 
var widthdiv=0; 
$(function(){ 
    $('.thumb').each(function(){ 
     widthdiv=$(this).width(); 
     total+=widthdiv; 
     alert(widthdiv); //added so i can see what value is returned. 
    }); 
}); 

và css cho những hình ảnh:

#poze img{ 
    height:80px; 
    width:auto; 
    border:0px; 
    padding-right:4px;  
} 
+0

Có một cái nhìn tại [câu hỏi này SO] (http://stackoverflow.com/questions/318630/get-real-image-width - và-chiều cao-với-javascript-trong-safari-chrome). Tôi nghĩ rằng bạn là vấn đề tương tự. – lonesomeday

Trả lời

37

Trong document.ready (mà bạn đang sử dụng) hình ảnh có thể hoặc không thể được nạp, nếu chúng không có trong bộ nhớ cache có thể là không phải là được tải. Thay vì sử dụng window.onload event khi những hình ảnh nạp, như thế này:

var total=0; 
$(window).load(function() { 
    $('.thumb').each(function() { 
    total += $(this).width(); 
    }); 
}); 
+0

Hoạt động hoàn hảo. –

+0

width() cũng không cho tôi giá trị phù hợp, Cách giải quyết? http://stackoverflow.com/questions/18650991/phantom-height-when-specifying-the-width-of-a-li-using-jquery – mrN

Các vấn đề liên quan