很难解释......所以我开了一个小提琴: http://jsfiddle.net/qga046f3/
目标:我的目标是获得三个相同高度的div。因此,我检测到所有高度并选择最大的高度并将此高度应用于其他div容器。 如果用户调整浏览器窗口的大小,则应重新调整div的高度。但是jQuery从第一次开始就给我带来了相同的高度。为什么呢?
这是我的jQuery代码:
var adjustheights = function(){
heights = [];
$('.element').each(function(i){
heights.push($(this).outerHeight());
});
var maxHeight = Math.max.apply(Math, heights);
$('.element').css('height', maxHeight);
$('.maxheight').html(maxHeight);
}
adjustheights();
$(window).resize(function(){
adjustheights();
});
答案 0 :(得分:1)
在添加新元素之前,您需要重置(删除)每个元素的高度。当您通过CSS设置高度时,jQuery会添加内联样式,因此您需要将其删除并使用新值再次添加:(http://jsfiddle.net/qga046f3/4/)
var adjustheights = function(){
heights = [];
$('.element').each(function(i){
// Reset height first
$(this).removeAttr('style');
heights.push($(this).outerHeight());
});
var maxHeight = Math.max.apply(Math, heights);
$('.element').css('height', maxHeight);
$('.maxheight').html(maxHeight);
console.log(heights);
}
adjustheights();
$(window).resize(function(){
adjustheights();
});