jQuery高度不正确

jQuery高度不正确,jquery,Jquery,我有一个有两列的页面,并尝试使用jQuery使它们具有相同的高度。。。我有以下代码 <script type="text/javascript"> $(document).ready(function() { var right_column_height = $("#right-column-wrapper").height() var content_height = $("#content-wrapper").height()

我有一个有两列的页面,并尝试使用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> 

$(文档).ready(函数(){
var right_column_height=$(“#right column wrapper”).height()
var content_height=$(“#content wrapper”).height()
console.log(“content=“+content\u height”)
if(right_column_height>content_height)$(“#content wrapper”).css(“height”,right_column_height)
else$(“#右列包装器”).css(“高度”,内容高度)
})
如果右栏较高,则其工作正常,但当内容较高时,其行为怪异。。。 在一个页面上,高度设置为预期,在另一个页面上,它根本不工作。。。 我添加了控制台日志以查看发生了什么,我发现jQuery中没有计算内容高度。。。但当我输入相同的代码到控制台时,我得到一个正确的值。。。 你能建议我的代码有什么问题吗


请参见上的演示,有问题的页面是,但在

上工作正常。为什么要使用javascript来解决一个可以使用CSS轻松解决的问题


例如,请参见和

为什么要使用javascript来解决一个可以通过CSS轻松解决的问题


例如,请参见和

当我将用于调整大小的代码放入setTimeout函数时,我已经解决了我的问题。。。
1毫秒的延迟就足够了,但是我仍然不明白为什么它在没有这个的情况下不工作。。。可能页面高度是在文档准备好后计算出来的

当我将用于调整大小的代码放入setTimeout函数时,我已经解决了我的问题。。。 1毫秒的延迟就足够了,但是我仍然不明白为什么它在没有这个的情况下不工作。。。页面高度可能是在文档准备就绪后以某种方式计算出来的

如果#右列包装器或#内容包装器元素具有没有指定尺寸的图像,那么jQuery将返回容器高度减去该图像高度

发生这种情况的原因是图像尚未加载到$(document).ready()(这也是setTimeout工作的最可能原因)

若要解决此问题,请将代码放在要获取$(window).load()内元素高度的位置

e、 g

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

如果#right column wrapper或#content wrapper元素具有没有指定尺寸的图像,则jQuery将返回容器高度减去该图像高度

发生这种情况的原因是图像尚未加载到$(document).ready()(这也是setTimeout工作的最可能原因)

若要解决此问题,请将代码放在要获取$(window).load()内元素高度的位置

e、 g


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

我在div上使用渐变背景和圆角,因此对于给定的示例,它看起来很奇怪。。。或者我只是不知道如何在我的情况下正确使用它们。。。如果你知道,请建议,我最好使用CSS,而不是JavaScriptI。我在div上使用渐变背景和圆角,因此对于给定的示例,它看起来会很奇怪。。。或者我只是不知道如何在我的情况下正确使用它们。。。如果您知道,请建议,我最好使用CSS,然后使用Javascript尝试将
px
添加到值:
$(“#右列包装器”).CSS(“高度”,内容高度+“px”)如果没有它,可能会应用其他单元。另外,如果内容包装有绝对定位或浮动元素,那么高度将无法正确计算,因为..我首先使用$(“#right column wrapper”).css(“height”)来获取高度,这会给出带有“px”的值,但结果是将
px
添加到值:
$(“#right column wrapper”).css(“height”,content_height+“px”);
如果没有它,可能会应用其他单位。此外,如果内容包装有绝对定位或浮动元素,则无法正确计算高度。我首先使用了$(“#右列包装”).css(“height”)为了得到高度,这给出了带有“px”的值,但结果确实是相同的。谢谢分享!真的很奇怪。谢谢分享!
$(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)
});