简体   繁体   English

jQuery:切换任何其他下拉菜单

[英]jQuery: Toggle other dropdowns when any is toggled

I would like to know how I can make it so that when I have a dropdown opened and I open another one, it will close the one previously opened. 我想知道如何做到这一点,这样当我打开一个下拉菜单并打开另一个下拉菜单时,它将关闭先前打开的下拉菜单。

This is what I have so far: 这是我到目前为止的内容:

 $(document).ready(function(){ // Hide other drop downs when opening another // $(".hideothers").hide(); // $(".show_hide_account").click(function(){ // $(".slidingDiv_account").slideToggle(); // }); // Account Drop down $(".slidingDiv_account").hide(); $(".show_hide_account").show(); $(".hideothers").hide(); $(".show_hide_account").click(function(){ $(".slidingDiv_account").slideToggle(); }); // Work drop down $(".slidingDiv_work").hide(); $(".show_hide_work").show(); $(".hideothers").hide(); $(".show_hide_work").click(function(){ $(".slidingDiv_work").slideToggle(); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <!--sidebar start--> <aside> <!-- Start of Toggle --> <div id="sidebar" class="nav-collapse "> <!-- sidebar menu start--> <ul class="sidebar-menu" id="nav-accordion"> <p class="centered"><a href="/user/#"><img src="assets/img/ui-sam.jpg" class="img-circle" width="60"></a></p> <h5 class="centered">USER</h5> <!-- Account Dropdown --> <li> <a class="show_hide_account"> <i class="fa fa-chevron-down"></i> <span>Account</span> </a> </li> <!-- Toggled Items --> <ul class="sub slidingDiv_account hideothers" style="display: block;"> <!-- Start of toggle --> <li> <a href="/account"> <i class="fa fa-pencil"></i> <span>Edit Account</span> </a> </li> <li> <a href="/users"> <i class="fa fa-pencil"></i> <span>Find Users</span> </a> </li> </ul> <!-- end of toggle --> <!-- Work Dropdown --> <li> <a class="show_hide_work"> <i class="fa fa-suitcase"></i> <span>Work</span> </a> </li> <!-- Toggled Items --> <ul class="sub slidingDiv_work hideothers" style="display: block;"> <!-- Start of toggle --> <li> <a href="/jobs"> <i class="fa fa-search"></i> <span>Find a Job</span> </a> </li> <li> <a href="/startup"> <i class="fa fa-star"></i> <span>Create a Startup</span> </a> </li> </ul> <!-- end of toggle --> <!-- <li class="mt"> <a href="index.html"> <i class="fa fa-users"></i> <span>Friends</span> </a> </li> --> </ul> <!-- sidebar menu end--> </div> </aside> <!--sidebar end --> 

Refer to the snippet for a clearer idea. 请参阅摘要以获取更清晰的想法。 Click on account & work to see the dropdowns. 点击帐户和工作以查看下拉菜单。

Thank you. 谢谢。

 $(document).ready(function(){ function slideAllUp(obj) { $(".hideothers").each(function(){ if ($(this)[0] != obj[0]) { $(this).slideUp(); //perform on all except self. } }) } // Account Drop down $(".slidingDiv_account").hide(); $(".show_hide_account").show(); $(".hideothers").hide(); $(".show_hide_account").click(function(){ slideAllUp($(".slidingDiv_account")); $(".slidingDiv_account").slideToggle(); }); // Work drop down $(".slidingDiv_work").hide(); $(".show_hide_work").show(); $(".hideothers").hide(); $(".show_hide_work").click(function(){ slideAllUp($(".slidingDiv_work")); $(".slidingDiv_work").slideToggle(); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <!--sidebar start--> <aside> <!-- Start of Toggle --> <div id="sidebar" class="nav-collapse "> <!-- sidebar menu start--> <ul class="sidebar-menu" id="nav-accordion"> <p class="centered"><a href="/user/#"><img src="assets/img/ui-sam.jpg" class="img-circle" width="60"></a></p> <h5 class="centered">USER</h5> <!-- Account Dropdown --> <li> <a class="show_hide_account "> <i class="fa fa-chevron-down"></i> <span>Account</span> </a> </li> <!-- Toggled Items --> <ul class="sub slidingDiv_account hideothers" style="display: block;"> <!-- Start of toggle --> <li> <a href="/account"> <i class="fa fa-pencil"></i> <span>Edit Account</span> </a> </li> <li> <a href="/users"> <i class="fa fa-pencil"></i> <span>Find Users</span> </a> </li> </ul> <!-- end of toggle --> <!-- Work Dropdown --> <li> <a class="show_hide_work dropdown"> <i class="fa fa-suitcase"></i> <span>Work</span> </a> </li> <!-- Toggled Items --> <ul class="sub slidingDiv_work hideothers" style="display: block;"> <!-- Start of toggle --> <li> <a href="/jobs"> <i class="fa fa-search"></i> <span>Find a Job</span> </a> </li> <li> <a href="/startup"> <i class="fa fa-star"></i> <span>Create a Startup</span> </a> </li> </ul> <!-- end of toggle --> <!-- <li class="mt"> <a href="index.html"> <i class="fa fa-users"></i> <span>Friends</span> </a> </li> --> </ul> <!-- sidebar menu end--> </div> </aside> <!--sidebar end --> 

This edit introduces a function called slideAllUp . 此编辑引入了一个名为slideAllUp的函数。 It passes over all ULs with the class .hideothers . 它通过.hideothers.hideothers所有.hideothers When calling the slideAllUp you need to pass the ul that isn't supposed to go up. 调用slideAllUp您需要传递不应该上升的ul This way it closes all others and opens the one clicked upon. 这样,它关闭了所有其他窗口,并打开了一个被单击的窗口。 The exception is there to allow the menu to close again. 例外是允许菜单再次关闭。

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

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