简体   繁体   English

如何为展开的菜单添加类并在折叠后删除类

[英]How to add class for expanded menu and remove class after collapse

I have tried to make dynamic menu list, and I have main menu and submenu, each item has submenu provided (+ ) sign before item name. 我尝试制作动态菜单列表,并且有主菜单和子菜单,每个项目在项目名称之前都有提供(+)的子菜单。 I have used addClass to add( - ) when I double click on the menu item and it works, however when I double click again on the item will collapse but ( - ) sign will not change to ( + ). 当我双击菜单项时,我已经使用addClass来添加(-),但是它可以工作,但是当我再次双击该菜单项时,它会折叠,但是(-)符号不会更改为(+)。 My question, how to remove ( - ) sign when the menu collapse by using removeClass and change it to ( +) which is the official ? 我的问题是,如何使用removeClass在菜单折叠时删除(-)符号并将其更改为官方的(+)?

Thanks a lot. 非常感谢。

CSS: CSS:

.openSign{
  background: url('images/open.png')no-repeat 0px  0px;
}
.closeSign{
  background: url('images/close.png')no-repeat 0px  0px;
}

HTML: HTML:

<ul > 1
  <li class="navL1 openSign"> 1.1 
    <ul class="navL2 openSign"> 
      <li class="navL2 openSign"> 1.1.1
        <ul>
          <li class="navL3"><a>1.1.1.1 </a> </li>
          <li class="navL3">1.1.1.2 </li>
          <li class="navL3">1.1.1.3</li>
        </ul>

JavaScript: JavaScript:

<script type="text/javascript">
       $(document).ready(function() {
                $(".navL2, .navL3").hide();
                $(".navL1").dblclick(function(e){
                    $(this).find('.navL2').slideToggle();
                    $(this).addClass("closeSign");   
              });
        });
</script>

有一个toggleClass就像有一个slideToggle

If you use slideToggle , you should use toggleClass() as well (instead of addClass ): 如果使用slideToggle ,则还应该使用toggleClass() (而不是addClass ):

$(this).toggleClass("closeSign")
  .find('.navL2').slideToggle();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM