调整窗口大小后,百分比宽度div的检测高度仍然相同? jQuery的

时间:2014-11-13 13:27:37

标签: javascript jquery html

很难解释......所以我开了一个小提琴: 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();    
});

1 个答案:

答案 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();

});