简体   繁体   English

jQuery列表切换子项

[英]jQuery List Toggle Children

My problem is when I click on the #topmenu it conflict's with another menu that I have 我的问题是,当我单击#topmenu时,它与我拥有的另一个菜单冲突

I want to open children UL element when li is clicked 当我单击li时,我想打开儿童UL元素

Javascript Code: JavaScript代码:

$("#topmenu").click(function(){
  $(".treeview-menu").addClass("treeview-menu open").toggle();
});

HTML 的HTML

<ul class="sidebar-menu" id="treeview-menu">
  <li class="treeview" id="topmenu">
    <a href="#"><i class="fa fa-table"></i><span>Financeiro</span>
      <i class="fa fa-angle-left pull-right"></i></a>
    <ul class="treeview-menu">
      <li><a href="#"><i class="fa fa-circle-o"></i>Pagamentos</a></li>
        <li><a href="#"><i class="fa fa-circle-o"></i>Relatórios</a></li>
    </ul>
  </li>
  <li class="treeview" id="topmenu">
    <a href="#"><i class="fa fa-table"></i><span>Financeiro</span>
     <i class="fa fa-angle-left pull-right"></i></a>
    <ul class="treeview-menu">
      <li><a href="#"><i class="fa fa-circle-o"></i>Pagamentos</a></li>
      <li><a href="#"><i class="fa fa-circle-o"></i>Relatórios</a></li>
    </ul>
  </li>
</ul>

Changed the class name and id name of 2nd ul and li tag. 更改了第二个ul和li标签的类名和ID名称。 Works fine 工作正常

   <!DOCTYPE html>
    <html>
    <head>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
      <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
      <style>

      </style>
    </head>
    <body>
      <ul class="sidebar-menu" id="treeview-menu">
           <li class="treeview" id="topmenu">
                 <a href="#"><i class="fa fa-table"></i><span>Financeiro</span>
                 <i class="fa fa-angle-left pull-right"></i></a>
                 <ul class="treeview-menu">
                    <li><a href="#"><i class="fa fa-circle-o"></i>Pagamentos</a></li>
                    <li><a href="#"><i class="fa fa-circle-o"></i>Relatórios</a></li>
                 </ul>
              </li>
              <li class="treeview1" id="topmenu1">
                 <a href="#"><i class="fa fa-table"></i><span>Financeiro</span>
                 <i class="fa fa-angle-left pull-right"></i></a>
                 <ul class="treeview-menu1">
                    <li><a href="#"><i class="fa fa-circle-o"></i>Pagamentos</a></li>
                    <li><a href="#"><i class="fa fa-circle-o"></i>Relatórios</a></li>
                 </ul>
              </li>
      </ul>

    <script>
    $(document).ready(function(){

      $(document).ready(function(){

  $("#topmenu").click(function(){
      $(".treeview-menu").addClass("treeview-menu open").toggle();
  });

  $("#topmenu1").click(function(){
      $(".treeview-menu1").addClass("treeview-menu open1").toggle();
  });
     }); 

    </script>

    </body>
    </html>

You have medley of IDs with same names. 您有多个具有相同名称的ID。

Use classes for common JS behavior. 将类用于常见的JS行为。

$(".treeview").click(function(){
    $(this).find(".treeview-menu").addClass("open").toggle();
});

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

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