为什么此功能在页面加载时没有预期的行为?

时间:2015-08-19 23:48:34

标签: javascript jquery algorithm dom responsive-design

我有一个功能,我用来使一堆兄弟n具有相同的高度。当DOM准备就绪时,我定义它,调用它,然后在div window编辑时将其设置为被调用。

resiz

jQuery(function($){ function rescaleStuff ( ) { $('.children-have-equal-height').each(function(){ var children = $(this).children(); var numChildren = children.length; if (numChildren > 1) { var firstChild = children.first(); var maxHeight = firstChild.height(); firstChild.siblings().each(function() { var thisHeight = $(this).height(); if (thisHeight > maxHeight) maxHeight = thisHeight; }); children.height(maxHeight); } }); } rescaleStuff(); $(window).resize(function() { rescaleStuff(); }); }); 调整大小调用函数rescaleStuff时,函数window工作得很棒,但当页面加载时 工作正常。由于某种原因,它计算的高度小于实际高度。那是为什么?

此外,我的程序可以更紧凑,优雅,可读,高效,聪明和可维护吗?我不这么认为。 ;)

1 个答案:

答案 0 :(得分:1)

使用:

$( window ).load(function() {
 ....
});

如果你必须计算宽度/高度,位置...... ready()方法是不够的。您必须等到加载完整内容(带图像),因为内容会影响高度和宽度。