jQuery高度不正确
我有一个有两列的页面,并尝试使用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()
<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)
});