2011-09-27 6 views
5
jQuery

muestra:¿es posible obtener la altura de un objeto jQuery clonado?

$('document').ready(function(){ 
    var $theP = $('p'); 
    var $theDiv = $('div'); 
    $theP.html($theP.html() + "<br>div height: " + $theDiv.outerHeight()); 
    var $theClone = $theDiv.clone(); 
    $theP.html($theP.html() + "<br>clonded div height: " + $theClone.outerHeight()); 
}) 

enlace directo: http://jsbin.com/odujiv/4

En funcionamiento anterior, se obtiene un resultado de '0' cuando se trata de obtener su altura. Creo que esto se debe al hecho de que el objeto clonado aún no se ha puesto en el DOM. ¿Es la única forma de obtener la altura de agregar primero el elemento clonado nuevamente al DOM? Si es así, creo que eso es factible, pero sería genial manejarlo antes de volverlo a poner en el DOM.

+0

Hay una solución 'hacky' para algo similar que se propone aquí: http://stackoverflow.com/questions/2345784/jquery-get-height-of-hidden-element-in-jquery-1-4-2 – Clive

+0

Sí , Me imagino que la solución es que tengo que agregarlo al DOM antes de obtener su altura. Eso probablemente funcionará. Podría agregarlo al DOM, colocarlo fuera de la pantalla, obtener la altura, hacer mis cálculos y luego colocarlo donde yo quiera. –

+1

Me he encontrado con esto antes: agregar el DOM fuera de la pantalla hizo el truco. – Pat

Respuesta

4

No, por desgracia. Los elementos HTML sin formato no tienen tamaños cuando no están adjuntos al documento, y jQuery no ha implementado una solución alternativa. ¡Supongo que esto se debe a la interdependencia entre los tamaños de los elementos HTML!

-1

Prueba esto:

$theClone.height(); 

or 

$theClone.css('height'); 
+1

Específicamente necesito outerHeight, pero el problema es el mismo. Lo anterior también devuelve 0 –

Cuestiones relacionadas