[英]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.