我有以下菜单,可以深入到三个级别:
Main > sub > subsub
<nav>
<div class="mainMenu">Main Menu Item # 1.
<ul>
<li> Sub Menu Item # 1</li>
<li class="subMenu"> Sub Menu Item # 2
<ul>
<a href="New">
<li>New</li>
</a>
<a href="">
<li>Old</li>
</a>
<a href="">
<li>View </li>
</a>
</ul>
<div class="n_r2_c2"></div>
</li>
<li> Sub Menu Item # 3</li>
<li> Sub Menu Item # 4</li>
</ul>
</div>
这是我的JQ:
$('.mainMenu').click(function () {
$(this).children('ul').slideToggle(250);
});
$('.subMenu').click(function () {
$(this).children('ul').slideToggle(250);
});
问题是主菜单子菜单的子菜单切换工作正常,但当我点击子菜单中的项目而不是切换其子菜单时,它会自动关闭,因为当我点击子菜单时主菜单{{1事件也很可能被解雇,因为子菜单在它里面,它点击主要div点击它?
无论如何,我如何解决这个问题,请帮助。
答案 0 :(得分:17)
使用 event.stopPropagation() 来阻止事件冒泡DOM树。
示例:强>
$('.subMenu').click(function (e) {
$(this).children('ul').slideToggle(250);
e.stopPropagation();
});
这将解决您的问题。