Reputation: 143
Wondering if anyone can help, please.
I've got some jQuery setup for my sub-menu in WordPress. It works perfectly until I have a sub-menu within a sub-menu. The classes don't change in WordPress so the jQuery no longer works.
Here's my jQuery:
$('.mobile li > .sub-menu').parent().click(function() {
$(".sub-menu").slideUp();
var submenu = $(this).children('.sub-menu');
if ( $(submenu).is(':hidden') ) {
$(submenu).slideDown(200);
} else {
$(submenu).slideUp(200);
}
});
Here's an example of how WordPress outputs the menu code:
<ul id="menu-main-menu" class="mobile">
<li>
<a href="#">Item</a>
<ul class="sub-menu">
<li>
<a href="#">Item</a>
<ul class="sub-menu">
<li>
<a href="#">Item</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
Any ideas of how to amend my code? Currently when I click the item within the two sub-menu then the parent sub-menu closes.
Upvotes: 1
Views: 38
Reputation: 14413
Try with this simplified handler:
$('.mobile li > a').click(function() {
$(this).siblings('.sub-menu').slideToggle(200);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="menu-main-menu" class="mobile">
<li>
<a href="#">Item</a>
<ul class="sub-menu">
<li>
<a href="#">Item</a>
<ul class="sub-menu">
<li>
<a href="#">Item</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
Upvotes: 1