我有一个HTML列表的部分:
<ul id="listMenu" style="list-style-type:none; margin-left:-50">
<li> __Menu1
<ul class="menuitems">
<li>Item A1</li>
<li>Item A2</li>
</ul>
</li>
<li> __Menu2
<ul class="menuitems">
<li>Item B1</li>
<li>Item B2</li>
</ul>
</li>
<li> __Menu3
<ul class="menuitems">
<li>Item C1</li>
<li>Item C2</li>
</ul>
</li>
<li> __Menu4
<ul class="menuitems">
<li>Item D1</li>
<li>Item D2</li>
</ul>
</li>
</ul>
我的目标是在单独的js文件中使用jQuery来管理列表。
我设法让这些子列表最初不显示:
$('ul:gt(1)').hide(); // Hide all submenus initially
但过去我真的很不知道如何访问每个列出单个项目。我知道这可能很简单,但我只是不知道如何开始,我读过的所有其他信息都比我知道的更先进。任何帮助将不胜感激
答案 0 :(得分:1)
试试这个:
$(document).ready(function() {
$(".menuitems").hide();
$(".menuitems").find("li").click(function(e) {
$(this).parent().show();
alert($(this).text());
e.stopPropagation();
});
$(".menuitems").parent().click(function() {
$(this).find(".menuitems").toggle();
});
});
我认为符合你的所有规格。
答案 1 :(得分:0)
在这里,再加上你的方法,这将是一个魅力:)
$(".menuitems").parent().click(function () {
$(this).find("li").toggle();
});
$(".menuitems li").click(function () {
var li_text_trimmed = $.trim($(this).text())
alert(li_text_trimmed)
})
答案 2 :(得分:0)
如果我没弄错,你需要这个,
$(document).ready(function () {
$(".menuitems").hide(); // hide all sub lists
$(".menuitems").first().show(); show first one
//handle click event
$(".menuitems").parent().click(function () {
$(this).find(".menuitems").toggle(); // toogle sub menu every click
});
});