为什么这个简单的jQuery切换不起作用?

时间:2016-02-25 10:14:34

标签: jquery html css toggleclass

我想知道为什么这个toggle无效。 隐藏addClass的{​​{1}}方法运行良好...是否有一个简单的错误我错过了或者我的概念错了? 感谢您的支持。

nav
$(document).ready(function() {
  $("body").addClass("js");

  var $menu = $("#menu"),
    $menulink = $(".menu_link");

  $menulink.click(function() {
    $menulink.toggleClass("active");
    $menu.toggleClass("active");
    return false;
  });
});
.menu_link {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  color: black;
  background-color: #fff;
  padding: 1rem;
  border-radius: 50%;
}
.menu_link .active {
  background-color: red;
}
.js nav {
  overflow: hidden;
  max-height: 0;
}
nav .active {
  max-height: 15rem;
}

2 个答案:

答案 0 :(得分:2)

错误出现在CSS中; .active类直接放在nav.menu_link元素上,因此您需要删除其选择器之间的空格:

.menu_link.active {
    background-color: red;
}

nav.active {
    max-height: 15rem;
}

Working example

答案 1 :(得分:1)

尝试删除.active之前的空格。所以它变成了

.menu_link.active {}

nav.active {}