簡體   English   中英

jQuery多級/手風琴側菜單問題

[英]jQuery Multi-level/Accordion Side Menu Issue

我正在嘗試創建一個非常簡單的jQuery three-level menu ,但是由於某些原因,當嘗試擴展jQuery three-level menu的“第三級”(子菜單)時,整個部分都被切換了,而不僅僅是第三級菜單。

這是jsfiddle: https ://jsfiddle.net/xa2dqqyo/

和標記:

<li class="menu-item"><a href="#">Home</a>
  <ul class="sub-menu">
    <li class="menu-item"><a href="#">Sub Menu Link</a>
      <ul class="sub-sub-menu">
        <li class="menu-item"><a href="#">Third Level</a></li>
      </ul>
    </li>
  </ul>
</li>

您可以通過單擊jsfiddle中的子鏈接來重新創建它-確實可以切換到第三級,但是也可以切換整個菜單/部分。

我是否在這里錯過了一些簡單的事情,還是陪審團不正確? 對於上下文,我正在使用自定義的wordpress菜單。

謝謝你的幫助!

在這里您可以找到解決方案https://jsfiddle.net/xa2dqqyo/1/

 $(document).ready(function(){ $(".menu-item").click(function(e){ e.preventDefault(); $(".sub-menu", this).slideToggle(300); }); $(".sub-menu").click(function(e){ e.stopPropagation(); $(".sub-sub-menu", this).slideToggle(300); }); }); 
 .sub-menu { display:none; } .sub-sub-menu { display:none; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <li class="menu-item"><a href="#">Home</a> <ul class="sub-menu"> <li class="menu-item"><a href="#">Sub Menu Link</a> <ul class="sub-sub-menu"> <li class="menu-item"><a href="#">Third Level</a></li> </ul> </li> </ul> </li> 

您需要添加event.stopPropagation() ,以停止事件傳播。

希望這會幫助你。

 $(document).ready(function() { $(".menu-item").click(function() { $(".sub-menu", this).slideToggle(300); }); $(".sub-menu").click(function() { $(".sub-sub-menu", this).slideToggle(300); return false; }); }); 
 .sub-menu { display:none; } .sub-sub-menu { display:none; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <li class="menu-item"><a href="#">Home</a> <ul class="sub-menu"> <li class="menu-item"><a href="#">Sub Menu Link</a> <ul class="sub-sub-menu"> <li class="menu-item"><a href="#">Third Level</a></li> </ul> </li> </ul> </li> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM