2012-05-14 8 views
15

Estoy tratando de usar jQuery para establecer la altura de varios divs para que todos sean de la misma altura que el div más alto. Básicamente recorro los divs y obtengo la altura de cada uno de ellos, almacenando el más grande en una variable. Luego recorro todos ellos nuevamente y establezco su altura a la variable.jQuery height() devuelve valores falsos

Sin embargo, jQuery me da el valor incorrecto para la altura. Por ejemplo, la función height() para el primer div devuelve 633, pero cuando lo miro en el inspector dice que es 603. No tengo absolutamente ninguna idea de por qué lo está haciendo. Parece incluir el relleno y los márgenes, pero la documentación dice que no debería estar haciendo eso.

La altura de los divs se establece como automática en mi hoja de estilos. Si les doy una altura de píxel fija, la función jQuery height() devuelve el valor correcto, pero no cuando están en automático (como deben ser).

El sitio en cuestión es ictsf.org. Observe el espacio adicional en la parte inferior de las tres columnas.

+2

Acabo de confirmar que este problema NO está ocurriendo en Firefox. Está sucediendo en Chrome y Safari. No lo he probado con IE, porque IE apesta. – TGPrankster

+0

Una buena razón para no probarlo con IE. –

Respuesta

32

El problema está relacionado con el código "igualar la altura de la columna" que se ejecuta en $(document).ready(), lo que sucede antes de WebKit es consciente de la altura de sus imágenes.

Por lo tanto, la solución más rápida es ejecutar el código en lugar de $(window).load(). O, mejor aún, use el imagesLoaded plugin.

Como alternativa, establecer el atributo height en el img s puede solucionar el problema.

+0

¡USTED, señor, es un genio! Muchas gracias. – TGPrankster

+0

allready 1 hora luchando pero me salvaste de más ... ¡gracias! – vaskort