【发布时间】:2013-03-03 15:31:21
【问题描述】:
我有一个使用如下列表元素的简单垂直菜单
<ul id="leftNav">
<li id="home"><a href="/index.html">Home</a>
</li>
<li id="apples"><a href="/category/apples.html">Apples</a>
<ul class="subMenu">
<li><a href="/category/red-apples.html">Red Apples</a>
</li>
<li><a href="/category/green-apples.html">Green Apples</a>
</li>
<li><a href="/category/golden-apples.html">Golden Apples</a>
</li>
</ul>
</li>
<li id="grapes"><a href="/category/grapes.html">Grapes</a>
<ul class="subMenu">
<li><a href="/category/red-grapes.html">Red Grapes</a>
</li>
<li><a href="/category/green-grapes.html">Green Grapes</a>
</li>
<li><a href="/category/black-grapes.html">Black Grapes</a>
</li>
</ul>
</li>
<li id="dry-fruits"><a href="/category/dry-fruits.html">Dry Fruits</a>
<ul class="subMenu">
<li id="subParent1"><a href="#">Fruits That Are Dried</a>
<ul class="subMenu1">
<li><a href="/category/figs.html">Figs</a>
</li>
<li><a href="/category/dates.html">Dates</a>
</li>
<li><a href="/category/pineapples.html">Pine Apples</a>
</li>
</ul>
</li>
<li id="subParent2"><a href="#">Nuts and Seeds</a>
<ul class="subMenu1">
<li><a href="/category/chestnuts.html">Chestnuts</a>
</li>
<li><a href="/category/almonds.html">Almonds</a>
</li>
<li><a href="/category/walnuts.html">Walnuts</a>
</li>
</ul>
</li>
<li id="subParent3"><a href="/category/bananas.html">Bananas</a>
</li>
</ul>
</li>
<li id="sale" class="expanded"><a href="/category/sale.html">Sale</a>
</ul>
我想要做的是当苹果或其子项目被点击时,我试图保持列表的部分展开等等,所以当葡萄或其子项目被点击时,除了葡萄部分之外,所有其他的都应该关闭。
我尝试使用下面的代码,但由于 Apples 和 Grapes 是呈现各自页面的链接,所以下面的代码不起作用。
$(document).ready(function() {
$("#apples .subMenu").css("display", "block");
});
感谢任何帮助、示例或建议。
【问题讨论】:
-
仅供参考,您可以使用 .show() 代替 .css()。与隐藏相同:.hide()
-
检查此jqueryui.com/accordion 并在谷歌中搜索 accordion js
-
您要禁用
<a>的链接吗?您可以尝试添加event.preventDefault() -
所有链接的预期行为是什么?由于您所说的所有列表元素也是链接,因此单击应该只折叠它们还是什么想法?
-
感谢大家的回复。对不起,我没有正确解释。我基本上是什么,当有人点击苹果时,他们应该进入苹果页面,并且它的子项目应该被扩展。如果单击其任何子项并转到其页面,则保持扩展。因此,如果我单击 GREEN APPLES,我应该转到 GREEN APPLES,同时扩展整个 APPLES 部分,同时折叠菜单的其余部分,也以相同的方式与其他人重复该过程,谢谢! !