加载div中的所有图像后执行一个函数

时间:2012-07-12 17:41:30

标签: jquery load

我想用jQuery获取div的高度,在这个div中,有一些图像在加载时会改变这个div的大小:

但是使用下面的代码,它会在加载图像之前给出div的高度

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

我已将代码更改为此但没有任何变化:

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

有人可以帮助我更改代码以达到我的目标吗?

3 个答案:

答案 0 :(得分:7)

您可以使用$(window).load()在文档及其资源完全加载时触发,包括所有对象和图像:

  

加载事件在文档加载过程结束时触发。此时,文档中的所有对象都在DOM中,并且所有图像和子帧都已完成加载。

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

答案 1 :(得分:2)

试试这个

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

答案 2 :(得分:0)

试一试。 Lemme知道它是否有效。

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