未捕获的ReferenceError:未定义maxHeight

时间:2019-04-16 08:04:10

标签: javascript jquery html css function

jQuery

$(function maxHeight() {
  var maxH = 0;
  var contentH = 'calc(100vh - 79px)';
  $(".left, .middle, .right").each(function() {
    if ($(this).height() <= contentH) {
      $(".left, .right").css('justify-content', 'space-between');
      $(".middle").css('height', '100%');
    } else {
      if ($(".middle").height() > $(".left, .right").height()) {
        $(".left, .right").css({
          'height':'calc(' + contentH + ' - 100px)',
          'justify-content':'space-between'
      });
        $(".middle").css('height',contentH);
      } else {
        maxH = $(".left, .right").height();
        $(".left, .middle, .right").height(maxH);
      }
    }
  });
});
mySwiper.height = maxHeight();

错误提示:未捕获ReferenceError:未定义maxHeight
我的代码有什么问题?

编辑:我对我最初在这里写的问题进行了划分。 -> Code to match the height of the 3 elements in JS, is this correct? - StackOverflow

3 个答案:

答案 0 :(得分:3)

删除函数周围的$()。

答案 1 :(得分:2)

您的函数当前是$(document).ready()的jQuery $(/*function*/)速记内的本地函数-因此,无法从该函数外部访问它。使其成为正常功能:

function maxHeight() {
  var maxH = 0;
  var contentH = 'calc(100vh - 79px)';
  $(".left, .middle, .right").each(function() {
    if ($(this).height() <= contentH) {
      $(".left, .right").css('justify-content', 'space-between');
      $(".middle").css('height', '100%');
    } else {
      if ($(".middle").height() > $(".left, .right").height()) {
        $(".left, .right").css({
          'height':'calc(' + contentH + ' - 100px)',
          'justify-content':'space-between'
      });
        $(".middle").css('height',contentH);
      } else {
        maxH = $(".left, .right").height();
        $(".left, .middle, .right").height(maxH);
      }
    }
  });
}
mySwiper.height = maxHeight();

答案 2 :(得分:1)

这里是基本实现的小提琴-https://jsfiddle.net/3tuvzxwd/1/

在父容器上添加display: flex; flex-direction: row,它将起作用