首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一次只能打开一个子菜单

一次只能打开一个子菜单
EN

Stack Overflow用户
提问于 2015-02-17 17:54:22
回答 2查看 984关注 0票数 1

小提琴:http://jsfiddle.net/s125paua/

以下是列表的html

代码语言:javascript
复制
<div id="div1">

<ul class="nav level-1">

<li class="has-submenu"><a href="#">Menu Level1</a>
    <ul class="level-2">
        <li class="has-submenu"><a href="#">Menu-Level2</a>
        <ul class="level-3">
                        <li class="has-submenu"><a href="#">Menu Level3</a>
            <ul class="level-4">
                        <li><a href="#">Menu-Level4</a></li>
                        <li><a href="#">Menu-Level4</a></li>
                    </ul>
            </li>
                        <li class="has-submenu"><a href="#">Menu-Level3</a>
            <ul class="level-3">
                        <li><a href="#">Menu-Level4</a></li>
                        <li><a href="#">Menu-Level4</a></li>
                    </ul></li>
                    </ul>
        </li>

        <li class="has-submenu"><a href="#">Menu-Level2</a>
            <ul class="level-3">
                <li><a href="#">Menu-Level3</a></li>
                <li class="has-submenu"><a href="#">Menu-Level3</a>

                    <ul class="level-4">
                        <li><a href="#">Menu-Level4</a></li>
                        <li><a href="#">Menu-Level4</a></li>
                    </ul>
                </li>
            </ul>
        </li>
    </ul>
</li>
<li class="has-submenu"><a href="#">Menu-Level1</a>
    <ul class="level-2">
        <li><a href="#">Menu-Level2</a></li>
        <li><a href="#">Menu-Level2</a></li>
    </ul>
</li>

 </ul>
</div>

我参考了下面的Managing open and closed menus on custom accordion navigation

这里使用了nav-open类,但它根本不是html的一部分。

我需要做以下事情:

当单击具有子菜单的链接时,其子菜单会展开,再次单击打开的子菜单的链接时,菜单会折叠,此时应立即打开"level 2“、"level 3”或"level 4“菜单。

EN

回答 2

Stack Overflow用户

发布于 2015-02-17 18:16:08

我不能理解你的网页,但是我已经为你创建了一个样本,这里是demo

HTML

代码语言:javascript
复制
<ul id="menumain">
   <li class="MenuLevelOne MenuDD"><a href="#" onclick="return false;">History</a>
  <ul class="MenuLevelTwo">
     <li><a href="#">Brief History</a></li>
     <li><a href="#">Brandon at War</a></li>
     <li><a href="#">Heritage Centre</a></li>
     <li><a href="#">Historic Maps</a></li>
   </ul>
 </li>
     <li class="MenuLevelOne MenuDD"><a href="#" onclick="return false;">Community</a>
     <ul class="MenuLevelTwo">
     <li><a href="#">Brief History</a></li>
     <li><a href="#">Brandon at War</a></li>
     <li><a href="#">Heritage Centre</a></li>
     <li><a href="#">Historic Maps</a></li>
    </ul>
   </li>
</ul>

JAVASCRIPT

代码语言:javascript
复制
$(".MenuDD").click(function () {
$(this).siblings().find("ul").hide();
$(this).find("ul").toggle();
$(this).siblings().removeClass('darkbg');
$(this).toggleClass("darkbg");
});
票数 2
EN

Stack Overflow用户

发布于 2015-02-17 19:00:08

好吧,如果我现在明白了..。您正在尝试关闭所有兄弟,然后只打开单击的子菜单,将您的js更改为:

代码语言:javascript
复制
            $('.has-submenu > a').on('click', function (e) {
            e.preventDefault();

            $(this).parent().toggleClass('nav-open').find('> ul > li').slideToggle();

            $(this).parent().siblings().find('> ul > li').slideUp();


        });

编辑:在最后一行之后添加以下内容以修复切换类

代码语言:javascript
复制
$(this).parent().siblings().removeClass('nav-open');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28559134

复制
相关文章

相似问题

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