jQuery的高度()不改变的大小调整(jQuery height() not changing o

2019-07-30 11:44发布

我从来没有过这个问题,但我似乎无法找到解决办法,所以我希望你们能帮助我。

jQuery的

function setTheHeight() {

    if( $('#main.level1 .block.attention .block-content').length ) {
        //Get value of highest element
        var maxHeight = Math.max.apply(Math, $('#main.level1 .block.attention .block-content').map (
            function() {
                return $(this).height();
            }
        ));
        console.log(maxHeight);
        $('#main.level1 .block.attention .block-content').height(maxHeight);
    }
}

setTheHeight();

$(window).resize(function() {
    setTheHeight();
});

Basicly什么这个函数是检查最高DIV并设置所有选定的div的高度,这个高度。 这工作得很好。 但它是一个负责任的设计,这样当用户调整大小的浏览器时的内容变小,DIV更高。 所以我加了一个resize事件。 该事件被解雇,但它不改变高度。 任何想法就是为什么调整大小是不会改变的高度?

快速的jsfiddle显示会发生什么: http://jsfiddle.net/3mVkn/

固定

嗯,这只是普通的愚蠢。 因为我设置的高度()它已经被固定,因此所有我需要做的仅仅是重置的高度和它的工作。

更新的代码:

function setTheHeight() {

    if( $('#main.level1 .block.attention .block-content').length ) {

        //Reset height
        $('#main.level1 .block.attention .block-content').height('auto');

        //Get value of highest element
        var maxHeight = Math.max.apply(Math, $('#main.level1 .block.attention .block-content').map (
            function() {
                return $(this).height();
            }
        ));
        console.log(maxHeight);
        $('#main.level1 .block.attention .block-content').height(maxHeight);
    }
}

setTheHeight();

$(window).resize(function() {
    setTheHeight();
});

Answer 1:

这不是jQuery的相关但CSS。 这是因为一旦你设置了.block内容到某个值的高度,调整窗口的大小后,那些.block内容不会变化的高度,因为高度不再设置为auto ,但一些预定值。

该解决方案是使用return $(this)[0].scrollHeight ,而不是return $(this).height()这样它会返回内容的真实高度,而不是CSS定义的高度。

编辑:

该解决方案实际上是计算.block内容内的所有儿童的高度,然后返回该值。 我在这里编辑你的代码http://jsfiddle.net/3mVkn/12/

这应该给你所需要的结果。



Answer 2:

我认为你缺少的一个参数.map()函数。 我看着.map() 在这里 。



文章来源: jQuery height() not changing on resize