【发布时间】:2014-07-14 19:11:39
【问题描述】:
我有一个 bootstarp 多级侧边菜单(不使用 jQuery UI 菜单)。不幸的是,当我单击一个子菜单项时,它的所有父项也会被触发。
这是因为我嵌套了带有“嵌套”ID 名称的 <li> 元素。我需要嵌套名称以便轻松地从数据库中获取所有子内容。 jQuery UI .menu() 方法效果很好,但它的风格很糟糕。所以我使用自定义侧边栏和自定义 click() 事件。
我如何告诉 jQuery 只处理一个最深的<li> 元素点击?
HTML
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu" style="display: block; position: static; margin-bottom: 5px; *width: 180px;">
<li id="m1-" class="dropdown-submenu"><a href="#">Grandfather</a>
<ul class="dropdown-menu">
<li id="m1-1-" class="dropdown-submenu"><a href="#">Father</a>
<ul class="dropdown-menu">
<li id="m1-1-1" ><a href="#">Son</a></li>
</ul>
</li>
</ul>
</li>
</ul>
Javascript(处理以“m”开头的 ID 中的点击,即菜单项)
$("li[id^='m']").click(function(){
//my code to handle the click
});
是的,我现在看到'm'前缀不是正确的前缀,应该像'menu'一样更独特。我稍后会修复它。
【问题讨论】:
-
@ShaunakD 这意味着当我点击儿子时,只有儿子会被执行,而不是父亲和祖父的项目。
标签: javascript jquery css html-lists