jQuery-重置不起作用的元素的高度

时间:2019-06-28 15:07:37

标签: javascript jquery css wordpress off-canvas-menu

我想做的是从“画布”菜单中获取下拉菜单的高度,并将其设置为UL,以便覆盖菜单当前所在的高度。因此,如果下拉菜单的高度较长,则其所在的div应该会扩展,并且始终应显示边框底部。

如果单击几次Corporate,然后单击SME,然后返回Corporate,则企业下拉菜单位于DIV的顶部和高度,并且高度不会重置。在讲解内容方面我很不好,所以请看这里的网站:Site URL

这是jQuery

// SLIDE OUT MENU
  $(".menu-blue-bar button").on("click", function(e) {
    $(".menu-blue-bar").toggleClass("menu-slide");
    $(".menu-blue-bar button").toggleClass("is-active");
    $(".menu-blue-bar .fade-in-menu .row").toggleClass("in-view");
    e.preventDefault();
  });

  jQuery(
    "<li class='back-button'><i class='icon icon-carousel-left-arrow'></i></li>"
  ).insertBefore(
    ".menu-blue-bar .main-menu-links .dropdown-menu li:first-child"
  );

  jQuery("li.back-button").on("click", function() {
    jQuery(".menu-blue-bar ul.dropdown-menu").removeClass("show");
    jQuery("ul.navbar-nav").css("height", "");
    console.log("clicked back arrow");
  });

  jQuery(".menu-blue-bar .navbar-nav > li.dropdown").on("click", function() {
    if (!$(".menu-blue-bar ul.dropdown-menu").hasClass("show")) {
      $(".main-menu-links ul.navbar-nav").css({
        height:
          $(this)
            .find("ul.dropdown-menu")
            .height() + "px"
      });
    }
  });

屏幕截图:screenshot link

1 个答案:

答案 0 :(得分:0)

“重置” height

时没有提供值
jQuery("ul.navbar-nav").css("height", "");

在CSS中不是有效的单位大小。

相反,尝试将高度设置为0或initial

jQuery("ul.navbar-nav").css("height", "initial");

此外,单词height应该是一个字符串(添加引号)。 这个

$(".main-menu-links ul.navbar-nav").css({
        height:
          $(this)
            .find("ul.dropdown-menu")
            .height() + "px"
      });

应该

$(".main-menu-links ul.navbar-nav").css({
        "height":
          $(this)
            .find("ul.dropdown-menu")
            .height() + "px"
      });

可能还有更多,但从此开始。