preventDefault()阻止被点击的链接,但不阻止这个子节点的链接,请教怎么写呢?
一个多级菜单,点击一级展开二级,不跳转到链接地址,用preventDefault(),可是连子节点的链接也阻止了,怎么办?
现在是这样的
$("#nav li).click(function(e){
$(this).children('ul').slideDown(200);
e.preventDefault();
});
<ul id="nav">
<li><a href="a">A</a>
<ul>
<li><a href="aaa">aaa</a></li>
<li><a href="bbb">bbb</a></li>
</ul>
</li>
<li><a href="b">B</a></li>
</ul>
------解决方案--------------------$("#nav li").click(function(e) {
var target = $(event.target);
var delegate = '#nav>li,#nav>li>a';
if (target.is(delegate)) {
$(this).children('ul').slideDown(200);
e.preventDefault();
}
});
所以,这种还是用class或id比较好控制和高效。