不正确的jQuery高度

问题描述:

我有两列的页面,并尽量让他们使用jQuery相同的高度。我有以下代码不正确的jQuery高度

<script type="text/javascript"> 
$(document).ready(function() { 
     var right_column_height = $("#right-column-wrapper").height() 
     var content_height = $("#content-wrapper").height() 
     console.log("content = " + content_height) 

     if(right_column_height > content_height) $("#content-wrapper").css("height", right_column_height) 
     else $("#right-column-wrapper").css("height", content_height) 
}) 
</script> 

如果右列是更高,它的正常工作,但是当当含量越高,其在一个页面上行事古怪...... 预期高度设置,其他页面上它不工作在所有... 我加了控制台日志记录,看看发生了什么,我看到的内容高度是不是在jQuery的计算...但是,当我再输入相同的代码来安慰,我得到一个corret值... 您能否有什么错在我的代码,请...

看到http://demo.romanpriryl.cz演示,有问题的网页是http://beta.romanprikryl.cz/fotogalerie.htm,但你为什么要使用JavaScript来解决,可以利用CSS容易固定的问题上http://beta.romanprikryl.cz/objednavky.htm

+0

尝试增加'px'为值:'$( “#右列包装”)的CSS( “高度”,content_height + “PX”);'没有它,其它单元可能适用。此外,如果内容包装已绝对定位或浮动元素,高度将不能正确计算,因为这... – 2011-03-07 11:16:09

+0

我第一次使用$(“#右列包装”)。CSS(“高”),以获得高度,并给出了'px'的值,但结果是相同的 – 2011-03-07 11:23:37

正常工作?

例如,见this tutorialthis one as well

+1

我在div上使用渐变背景和圆角,所以对于给定的例子它看起来很奇怪......或者我只是没有弄清楚在我的情况下如何正确使用它们......如果你知道,请建议,我最好使用CSS然后JavaScript – 2011-03-07 11:10:42

我已经解决了我的问题,当我把代码调整到setTimeout函数... 1个milisecond的延迟就足够了,但我仍然不明白为什么它的没有工作没有这个...可能页面高度是在文档准备好之后以某种方式计算的

+0

确实很奇怪。感谢分享! – 2011-03-07 12:25:23

如果#right-column-wrapper或#content-wrapper元素具有没有指定尺寸的图像,那么jQuery将返回高度的容器减去这个图像的高度。

这是因为图像没有在$(文件)。就绪()尚未加载(这也是为什么setTimeout的工作最可能的原因)。

为了解决这个问题,要进去$元素的高度放置代码(窗口).load()。

例如

$(window).load(function() { 
    var right_column_height = $("#right-column-wrapper").height() 
    var content_height = $("#content-wrapper").height() 
    console.log("content = " + content_height) 

    if(right_column_height > content_height) $("#content-wrapper").css("height", right_column_height) 
    else $("#right-column-wrapper").css("height", content_height) 
}); 

或者,您可以在HTML中设置图像宽度和高度,jQuery将确定元素的正确高度值。