我正在尝试创建一个下拉菜单,它在单击而不是悬停时激活。到目前为止,我使用一点 javascript 进行了单击操作,但是虽然子菜单显示良好,并且如果单击另一个菜单,则其他子菜单隐藏,如果单击其父菜单,我无法弄清楚如何隐藏子菜单。
EG 在这个JS 小提琴中 ,我可以单击“父 1”以显示其子级,当我单击“父级 2”时,父级 1 的子级隐藏和父级 2 的子级显示。但是,如果父母 1 的孩子显示我希望能够通过再次点击父母 1 来隐藏它们,(或者在孩子之外的任何地方甚至更好)
我见过一些例子,其中每个父菜单和子菜单都被赋予了单独的类或 ID。我想避免这种情况,因为它需要在 cms 中工作。
这是我的基本代码
的HTML:
<div>
<ul>
<li><a href="#">Parent 1</a>
<ul>
<li><a href="#">Parent 1 » Child 1</a></li>
<li><a href="#">Parent 1 » Child 1</a></li>
<li><a href="#">Parent 1 » Child 1</a></li>
</ul>
</li>
<li><a href="#">Parent 2</a>
<ul>
<li><a href="#">Parent 2 » Child 2</a></li>
<li><a href="#">Parent 2 » Child 2</a></li>
<li><a href="#">Parent 2 » Child 2</a></li>
</ul>
</li>
<li><a href="#">Parent 3</a>
<ul>
<li><a href="#">Parent 3 » Child 3</a></li>
<li><a href="#">Parent 3 » Child 3</a></li>
<li><a href="#">Parent 3 » Child 3</a></li>
</ul>
</li>
</ul>
的JavaScript:
$(document).ready(function () {
$("li").click(function () {
$('li > ul').hide();
$(this).children("ul").toggle();
});
});
CSS 可能不是必需的,但如果需要,它在小提琴上