You can simple do it with JQuery in following:
$('.sub-menu').hide();
$("li:has(ul)").click(function() {
$("ul",this).slideDown();
});
Just add class to your sub-menu's ul
like:
<li id="nav_more" data-dropdown class='left'>
<a href="#">MENU
<img src="/dropdown_arrow.png" alt="" />
</a>
<ul class="sub-menu">
<li>
<a href="#">
<img src="/user-info-icon.png" alt="" /> SubMenu 1
</a>
</li>
<li>
<a href="#">
<img src="/chart-search-icon.png" alt="" /> SubMenu 2
</a>
</li>
</ul>
</li>
Check demo at JS FIDDLE
Above solution don't hide sub-menu if it clicked again. You could try this instead:
Add class menu
to a
:
<li id="nav_more" data-dropdown class='left'>
<a href="#" class="menu">MENU
<img src="/dropdown_arrow.png" alt="" />
</a>
<ul class="sub-menu">
<li>
<a href="#">
<img src="/user-info-icon.png" alt="" /> SubMenu 1
</a>
</li>
<li>
<a href="#">
<img src="/chart-search-icon.png" alt="" /> SubMenu 2
</a>
</li>
</ul>
</li>
Add to your CSS display: none
for sub-menu:
.sub-menu {
display: none;
}
And use JQuery in following:
$(document).on('click', 'a.menu', function(e) {
e.preventDefault();
$(this).siblings('.sub-menu').slideToggle();
});
Check demo at JS FIDDLE