+ -
当前位置:首页 → 问答吧 → 关于DIV自动高度问题

关于DIV自动高度问题

时间:2011-10-17

来源:互联网

大家好,第一次发帖多多指教。

我的网页是用php开发的,有两个div,我也用了jquery写了一个
自动调高度的函数。每当页面刷新就自动调整我两个div的高度。就这样调用
$(document).ready(function() {  
  equalHeight("leftPanel","content");
});

可是我的网页里的图片还没载完,我的div就自动调高度了,这导致我的div有时的自动高度变成不一样了。我就加了另一段 window.load 的代码,这样也解决了。
$(window).load(function(){  
  equalHeight("leftPanel","content");
});

可是我有一些div里的内容是ajax返回来的,而且里面也有图片,当内容返回时,我也调用了equalHeight这个函数来调整高度。可是当div里的图片还没载完我的div就自动调整高度了,之后图片才载完,这样我的div就不一样高度了。而这个window.load的代码也不管用,因为ajax根本没刷新页面。

那位大哥大姐帮帮忙,再线等 = =
谢谢
 

作者: ktoytp   发布时间: 2011-10-17

ajax不是有回调函数吗。。在回调函数里面调用equalHeight()

作者: axiheyhey   发布时间: 2011-10-17


var img = new Image();
img.src = "你图片路径";
$(img).load = function(){
  //图片加载成功后调用
  equalHeight("leftPanel","content");
}

作者: liangws   发布时间: 2011-10-17

谢谢你的回应!
axiheyhey,其实我不太会ajax,就是我的framework里用的。我的按钮启动后,ajax就自动返回内容了。

liangws 的做法,请问如果我不要确定图片的路径,怎么办? 我尝试直接用
$(img).load = function(){
equalHeight("leftPanel","content");
}
没有反应。

我使用windows mouseover 时间启动就能,但是我觉得这样非常消耗资源是吗?
对不起我是新手多多包涵!

作者: ktoytp   发布时间: 2011-10-17

这样的话,加个定时器应该就可以了
$("xxx").html("包含图片的html代码");
setTimeout(function(){
  equalHeight("leftPanel","content");
},0)

作者: liangws   发布时间: 2011-10-17

对不起,请问你这段代码怎么用?为什么要加timeout?

作者: ktoytp   发布时间: 2011-10-17

setTimeout(function(){fn()},0)有个作用就是将里面的函数fn,push到线程的最末端执行,简单来说是等页面节点渲染完毕后执行fn()
在这里的用法就是等图片渲染完毕后执行

作者: liangws   发布时间: 2011-10-17

hi liangws,
你的代码能执行了,
但是当我的按钮启动了ajax返回的内容里的图片加载在我的div里时,
这段代码里的equalheight就不执行了。
为什么会这样呢

作者: ktoytp   发布时间: 2011-10-17

发一下你ajax调用的代码看看

作者: liangws   发布时间: 2011-10-17