![](/img/trans.png)
[英]How can I close an active dropdown menu when I click on another dropdown menu button using jQuery?
[英]How can I close one menu when another is opened with Click?
在我为我的问题尝试了大多数其他相关搜索结果但没有任何工作后,我将尝试发布我自己的问题。
这就像一个魅力,通过在网站主菜单中打开隐藏的子菜单来实现。 问题是,如果我打开总共四个子菜单中的一个,然后打开另一个子菜单,那么这些子菜单就会相互叠加。 我希望一次只打开一个菜单项的子菜单,这意味着如果我打开一个子菜单,之前打开的子菜单应该关闭。
jQuery(document).ready(function($) { $(".clickSlide > ul").hide(); $(".clickSlide").click(function() { $(this).children("ul").stop(true, true).slideToggle("fast"), $(this).toggleClass("dropdown-active"); }); });
<ul id="menu-sidhuvud-e-butik-vanster" class="menu"> <li class="clickSlide menu-item menu-item-has-children"><a>Parent 1</a> <ul class="sub-menu" style="display: none;"> <li class="menu-item-has-children menu-item-1947"><a href="#">Sub parent</a> <ul class="sub-menu"> <li class="menu-item-1948"><a href="#">Link object</a></li> <li class="menu-item-2224"><a href="#">Link object</a></li> </ul> </li> </ul> </li> <li class="clickSlide menu-item menu-item-has-children"><a>Parent 3</a> <ul class="sub-menu" style="display: none;"> <li class="menu-item-has-children menu-item-1947"><a href="#">Sub parent</a> <ul class="sub-menu"> <li class="menu-item-1948"><a href="#">Link object</a></li> <li class="menu-item-2224"><a href="#">Link object</a></li> </ul> </li> </ul> </li> <li class="clickSlide menu-item menu-item-has-children"><a>Parent</a> <ul class="sub-menu" style="display: none;"> <li class="menu-item-has-children menu-item-1947"><a href="#">Sub parent</a> <ul class="sub-menu"> <li class="menu-item-1948"><a href="#">Link object</a></li> <li class="menu-item-2224"><a href="#">Link object</a></li> </ul> </li> </ul> </li> </ul> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
有什么建议么? 我对JS很陌生。
感谢您的任何指导。
您已经有了如何在代码中执行此操作的公式。 您只需要确保在所有其他未单击的元素上都使用 toggle.hide() function。
$(this).siblings().children("ul").hide("fast")
上面的行正是这样做的。 它选择所有的兄弟姐妹并隐藏他们的 ul 标签的孩子。
jQuery(document).ready(function ($) { $(".clickSlide > ul").hide(); $(".clickSlide").click(function () { $(this).siblings().children("ul").hide("fast") $(this).children("ul").stop(true, true).slideToggle("fast"), $(this).toggleClass("dropdown-active"); }); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul id="menu-sidhuvud-e-butik-vanster" class="menu"> <li class="clickSlide menu-item menu-item-has-children"><a>Parent 1</a> <ul class="sub-menu" style="display: none;"> <li class="menu-item-has-children menu-item-1947"><a href="#">Sub parent</a> <ul class="sub-menu"> <li class="menu-item-1948"><a href="#">Link object</a></li> <li class="menu-item-2224"><a href="#">Link object</a></li> </ul> </li> </ul> </li> <li class="clickSlide menu-item menu-item-has-children"><a>Parent 3</a> <ul class="sub-menu" style="display: none;"> <li class="menu-item-has-children menu-item-1947"><a href="#">Sub parent</a> <ul class="sub-menu"> <li class="menu-item-1948"><a href="#">Link object</a></li> <li class="menu-item-2224"><a href="#">Link object</a></li> </ul> </li> </ul> </li> <li class="clickSlide menu-item menu-item-has-children"><a>Parent</a> <ul class="sub-menu" style="display: none;"> <li class="menu-item-has-children menu-item-1947"><a href="#">Sub parent</a> <ul class="sub-menu"> <li class="menu-item-1948"><a href="#">Link object</a></li> <li class="menu-item-2224"><a href="#">Link object</a></li> </ul> </li> </ul> </li>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.