日期:2014-05-16  浏览次数:20393 次

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比较好控制和高效。