简体   繁体   English

手风琴类型菜单关闭除选定的一个以外的所有div

[英]accordion type menu that closes all divs except one selected

I'm trying to do an accordion type menu without actually using the plugin. 我正在尝试做一个手风琴类型菜单,而没有实际使用该插件。 I have a jsfiddle here : https://jsfiddle.net/t7mafd2a/1/ 我在这里有一个jsfiddle: https ://jsfiddle.net/t7mafd2a/1/

I can toggle the menu but what I want is when one is open the other close, not just have them stay open when clicked. 我可以切换菜单,但我想要的是一个打开时另一个关闭,而不仅仅是单击时保持打开状态。

  $('.navContainer li div').click(function (e) { e.preventDefault(); var $t = $(this); $t.next('.navtoggle').toggleClass('active', 400); }); 
  .navtoggle { display: none; } .active { display: block; } .navContainer { display: block; } ul, li { list-style: none; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="navContainer"> <ul> <li> <div>Category 1</div> <ul class="navtoggle"> <li><a href="http//www.google.com">Test</a></li> <li><a href="http//www.google.com">Test</a></li> </ul> <div>Category 2</div> <ul class="navtoggle"> <li><a href="http//www.google.com">Test</a></li> </ul> <div>Category 3</div> <ul class="navtoggle"> <li><a href="http//www.google.com">Test</a></li> </ul> </li> </ul> </div> 

Simply add this line before you do toggleClass 只需在执行toggleClass之前添加此行

$('.navtoggle').removeClass('active');

This will remove the active class from all of your navtoggle elements before you open the one you just clicked. 在您打开刚刚单击的navtoggle元素之前,这将删除所有navtoggle元素中的active类。

Full code: 完整代码:

$('.navContainer li div').click(function(e) {
  e.preventDefault();
  var $t = $(this);
  var $next = $t.next('.navtoggle');
  $('.navtoggle').not($next).removeClass('active');
  $next.toggleClass('active', 400);
});

 $('.navContainer li div').click(function (e) { e.preventDefault(); $('ul.active').removeClass('active'); var $t = $(this); $t.next('.navtoggle').toggleClass('active', 400); }); 
 .navtoggle { display: none; } .active { display: block; } .navContainer { display: block; } ul, li { list-style: none; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="navContainer"> <ul> <li> <div>Category 1</div> <ul class="navtoggle"> <li><a href="http//www.google.com">Test</a></li> <li><a href="http//www.google.com">Test</a></li> </ul> <div>Category 2</div> <ul class="navtoggle"> <li><a href="http//www.google.com">Test</a></li> </ul> <div>Category 3</div> <ul class="navtoggle"> <li><a href="http//www.google.com">Test</a></li> </ul> </li> </ul> </div> 

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

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