html - jQuery Simple Vertical Accordion Menu -
how can when click 'item' open , when click again close in vertical accordion menu:
<style> #nav { float: left; width: 280px; border-top: 1px solid #999; border-right: 1px solid #999; border-left: 1px solid #999; } #nav li { display: block; padding: 10px 15px; background: #ccc; border-top: 1px solid #eee; border-bottom: 1px solid #999; text-decoration: none; color: #000; } #nav li a:hover, #nav li a.active { background: #999; color: #fff; } #nav li ul { display: none; // used hide sub-menus } #nav li ul li { padding: 10px 25px; background: #ececec; border-bottom: 1px dotted #ccc; } </style> <ul id="nav"> <li><a href="#">item 1</a> <ul> <li><a href="#">sub-item 1 a</a></li> <li><a href="#">sub-item 1 b</a></li> <li><a href="#">sub-item 1 c</a></li> </ul> </li> <li><a href="#">item 2</a> <ul> <li><a href="#">sub-item 2 a</a></li> <li><a href="#">sub-item 2 b</a></li> </ul> </li> </ul> <script type="text/javascript"> $(document).ready(function () { $('#nav > li > a').click(function(){ if ($(this).attr('class') != 'active'){ $('#nav li ul').slideup(); $(this).next().slidetoggle(); $('#nav li a').removeclass('active'); $(this).addclass('active'); } }); }); </script> when click item 1,item 2 open sub menus if click again did not close it.
you need else in jquery catch click if item active
$(document).ready(function () { $('#nav > li > a').click(function(){ if ($(this).attr('class') != 'active'){ $('#nav li ul').slideup(); $(this).next().slidetoggle(); $('#nav li a').removeclass('active'); $(this).addclass('active'); } else { $('#nav li ul').slideup(); $('#nav li a').removeclass('active'); } }); }); #nav li ul { display: none; } <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul id="nav"> <li><a href="#">item 1</a> <ul> <li><a href="#">sub-item 1 a</a></li> <li><a href="#">sub-item 1 b</a></li> <li><a href="#">sub-item 1 c</a></li> </ul> </li> <li><a href="#">item 2</a> <ul> <li><a href="#">sub-item 2 a</a></li> <li><a href="#">sub-item 2 b</a></li> </ul> </li> </ul>
Comments
Post a Comment