如何仅在菜单中对父项使用preventDefault()?

时间:2014-11-20 20:07:33

标签: javascript jquery preventdefault

我正在构建一个基于触摸的下拉菜单,一切都运行良好,除非当一个人点击父母时,我希望它只激活下拉菜单,而不是去父母的href中列出的链接。所以,我尝试过使用preventDefault(),但它也禁用了下拉列表中所有子节点的链接。我只希望它禁用父级的链接并允许子级链接正常工作。如何使用它来定位父级链接。这是我的代码:

菜单

<ul class="nav menu">
 <li class="parent"><a href="#">Parent</a>
  <ul class="nav-child">
    <li><a href="#" >Child 1</a></li>
    <li><a href="#" >Child 2</a></li>
    <li><a href="#" >Child 3</a></li>
  </ul>
 </li>
</ul>

jquery的

var $dropDownLinks = $('.parent a');

$dropDownLinks.click( function(event){
   event.preventDefault();
});

1 个答案:

答案 0 :(得分:0)

您可以做的是限制元素选择器:

尝试仅选择.parent的直接子元素。

这可以通过&#34;&gt;&#34;,示例

来完成
var $dropDownLinks = $('.parent > a');

$dropDownLinks.click( function(event){
   event.preventDefault();
});