2012-07-12 32 views
7

Tôi muốn có được chiều cao của một div với jQuery và trong div này, có một số hình ảnh mà thay đổi kích thước này div khi nạp:Thực hiện một chức năng sau khi tất cả hình ảnh trong một div nạp

nhưng với đoạn mã sau , nó mang lại cho tôi chiều cao của div trước khi hình ảnh được nạp

$(document).ready(function() { 
     $(".link_module").each(
      function() { 
       maxheight = Math.max(maxheight,$(this).height()); 
      } 
     ).height(maxheight); 
}); 

tôi đã thay đổi mã của tôi để điều này, nhưng không có gì thay đổi:

$(document).ready(function() { 
    $(".link_module img").load(
     function(){ 
      $(".link_module").each(
       function() { 
        maxheight = Math.max(maxheight,$(this).height()); 
       } 
      ).height(maxheight); 
     } 
    ) 
}); 

bất cứ ai có thể giúp tôi thay đổi mã để đạt được mục tiêu của tôi?

+1

Bạn đã thử tính toán trong sự kiện window.load chưa? – MrOBrian

Trả lời

7

Bạn có thể sử dụng $(window).load() mà cháy khi tài liệu và nó tài sản được nạp đầy đủ, bao gồm tất cả các đối tượng và hình ảnh:

kiện cháy

Các tải tại kết thúc quá trình tải tài liệu. Tại thời điểm này, tất cả các đối tượng trong tài liệu nằm trong DOM, và tất cả các hình ảnh và khung phụ đã tải xong.

$(window).on('load', function() { 
    $(".link_module").each(
     function() { 
      maxheight = Math.max(maxheight,$(this).height()); 
     } 
    ).height(maxheight); 
}); 
0

Hãy dùng thử. Lemme biết nếu nó hoạt động.

var childW=0 
$(".link_module").children().each(function(){  
    $("img").load(function() { 
    childW+=$(this).outerWidth(); 
    }); 
}); 
2

Hãy thử điều này

$(document).ready(function() { 
    var $this = $(this); 
    $(".link_module img").load(
     function(){ 
      $(".link_module").each(function() { 
      maxheight = Math.max(maxheight,$this.height()); 
      }).height(maxheight); 
    }); 
}); 
Các vấn đề liên quan