我在网上找到了一段 jQuery 代码,几乎可以满足我的要求。
(function($) {
$.fn.toggleMenu = function() {
var menu = $(this).find('ul');
menu.hide();
$(this).click(function(e) {
e.stopPropagation();
menu.toggle();
});
}
});
我可以像这样触发该功能:
$('li.grouped').toggleMenu();
我遇到的问题是,当我单击列表项时,当有多个下拉菜单时,它们都会被切换。它应该只在我单击的 li 元素下切换 ul.dropdown。
我试过这样的代码:
el.click(function(e) {
e.stopPropagation();
menu.closest('ul.dropdown').toggle();
});
但这并没有多大作用。
HTML 结构与此类似:
<div class="main-menu">
<ul class="menu">
<li class="grouped menu-item">
<ul class="dropdown">...</ul>
</li>
<li class="grouped menu-item">
<ul class="dropdown">...</ul>
</li>
<li class="menu-item">...</li>
<li class="menu-item">...</li>
<li class="menu-item">...</li>
<li class="menu-item">...</li>
</ul>
</div>
任何人都可以向我解释如何更改我的代码,使其切换为正确的 ul。
谢谢