切换两个类别的导航

时间:2019-03-18 21:45:35

标签: jquery

我如何建立切换锂 带有+或-类的元素在切换时显示,并且不显示子菜单。

$(document).ready(function() {
  $(".sub-menu").hide();
  $(".sub-menu").parent('li').addClass('active');
  $(".sub-menu").parent('li').click(function() {
    $(".sub-menu").toggle("slow", function() {
      if ($(this).is(':visible')) {
        $(".sub-menu").parent('li').addClass('unactive');
      } else {
        $(".sub-menu").parent('li').addClass('active');
      }
    });
  });
});
.active::before {
  content: '+';
}

.noactive::before {
  content: '-';
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li>Item1</li>
  <li>Item2
    <ul class="sub-nav">
      <li>Item2a</li>
      <li>Item2b</li>
    </ul>
  </li>
</ul>

1 个答案:

答案 0 :(得分:0)

首先,您在类命名中遇到了错别字,但它不能解决问题,因为最后一个CSS类更强大,一旦被分配,则在下次单击时不会更改。在这里尝试使用span元素代替类:

<ul>
<li>Item1</li>
<li><span>+</span>Item2
    <ul class="sub-menu">
        <li>Item2a</li>
        <li>Item2b</li>
    </ul>
</li>

然后您可以使用.text()函数在单击时更改其值:

    $(document).ready(function() {
    $(".sub-menu").hide();

    $(".sub-menu").parent('li').click(function() {
        $(".sub-menu").toggle("slow", function() {
            if ($(this).is(':visible')) {
                $("span").text('-');
            } else {
                $("span").text('+');
            }
        });
    });
});