2012-07-12 4 views
7

voglio ottenere l'altezza di un div con jQuery e in questo div, ci sono alcune immagini che cambiano le dimensioni di questo div quando vengono caricati:eseguire una funzione, dopo tutte le immagini all'interno di un div caricati

ma con codice qui sotto , mi dà altezza div prima immagini sono state caricate

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

ho cambiato il codice per questo, ma non cambiare nulla:

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

qualcuno può aiutarmi a cambiare il codice per raggiungere il mio obiettivo?

+1

Hai provato il calcolo durante l'evento window.load? – MrOBrian

risposta

7

È possibile utilizzare $(window).load() che spara quando il documento ed è beni sono a pieno carico, inclusi tutti gli oggetti e le immagini:

generato l'evento

il carico della fine del processo di caricamento del documento. A questo punto, tutti gli oggetti nel documento si trovano nel DOM e tutte le immagini e le sottoquadrature hanno completato il caricamento.

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

Provatelo. Fammi sapere se funziona.

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

Prova questa

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