首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery多级/手风琴边菜单问题

jQuery多级/手风琴边菜单问题
EN

Stack Overflow用户
提问于 2017-09-06 17:06:24
回答 2查看 112关注 0票数 1

我试图创建一个非常简单的jQuery three-level menu,但是由于某些原因,当试图扩展菜单的“第三层”(子菜单)时,整个部分被切换,而不仅仅是第三个子菜单。

这是一个小摆设:https://jsfiddle.net/xa2dqqyo/

以及标记:

代码语言:javascript
复制
<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菜单。

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-06 17:16:14

这是一个解决方案,https://jsfiddle.net/xa2dqqyo/1/

代码语言:javascript
复制
$(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);
  });
});
代码语言:javascript
复制
.sub-menu {
  display:none;  
}
.sub-sub-menu {
  display:none;
}
代码语言:javascript
复制
<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(),以停止事件传播。

希望这能帮到你。

票数 0
EN

Stack Overflow用户

发布于 2017-09-06 17:17:59

代码语言:javascript
复制
$(document).ready(function() {
    $(".menu-item").click(function() {
        $(".sub-menu", this).slideToggle(300);
    });

    $(".sub-menu").click(function() {
        $(".sub-sub-menu", this).slideToggle(300);
        return false;
    });
});
代码语言:javascript
复制
.sub-menu {
  display:none;  
}
.sub-sub-menu {
  display:none;
}
代码语言:javascript
复制
<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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46080833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档