Equal Heights JS

时间:2015-09-14 20:00:18

标签: javascript php jquery

晚上好,

我一直在使用javascript使用以下JS生成相等高度的列:

<script type="text/javascript">
    var maxHeight = 0;
    $(".level").each(function(){
    maxHeight = $(this).height() > maxHeight ? $(this).height() : maxHeight;
    }).height(maxHeight);
</script>

但是,我希望能够添加其他类,并建议将我的代码修改为如下所示。另一个原因是阻止脚本创建一个像上面那样的全局变量。

现在的问题是,第一堂课有效但其他人似乎不是。它们产生的高度却不同。任何人都可以帮我解决问题吗?

<script type="text/javascript">
    (function() {
        function equalHeights(selector) {
        var maxHeight = 0;
        function calcEqualHeight() {
        var el = $(this);
        maxHeight = el.height() > maxHeight ? el.height() : maxHeight;
        el.height(maxHeight);
        }
        selector.each(calcEqualHeight);
        }

        equalHeights($('.level-1'));
        equalHeights($('.level-2'));
        equalHeights($('.level-3'));
      })();
</script>

1 个答案:

答案 0 :(得分:0)

您需要在完成循环后 设置 的高度:

(function() {
    function equalHeights(selector) {
        var maxHeight = 0;
        function calcEqualHeight() {
            var el = $(this);
            maxHeight = el.height() > maxHeight ? el.height() : maxHeight;
        }
        selector.each(calcEqualHeight).height(maxHeight);
    }

    equalHeights($('.level-1'));
    equalHeights($('.level-2'));
    equalHeights($('.level-3'));
  })();