jQuery:preventDefault仅在父链接上

jQuery:preventDefault仅在父链接上,jquery,menu,parent-child,parent,preventdefault,Jquery,Menu,Parent Child,Parent,Preventdefault,解决方案: 找到了解决办法 已使用的父节点: $('.skaftetopmenu-li > a').click(function(e) { e.preventDefault(); var subid = $(this.parentNode).attr('id'); if (subid !="forsidemenu"){ var str = $('#submenu-content-'+subid).html(); if ($.trim(str) ==

解决方案:

找到了解决办法

已使用的父节点:

$('.skaftetopmenu-li > a').click(function(e) {
   e.preventDefault();
   var subid = $(this.parentNode).attr('id');
   if (subid !="forsidemenu"){
      var str = $('#submenu-content-'+subid).html();
      if ($.trim(str) == ""){
         $('.submenu-content', this.parentNode).load('http://' + skafte.base_url + '/inc/top-menu-subs/'+subid+'_submenu.html');
      }
   }
});

我有这样的菜单:

<ul>
  <li class="parent">
    <a href="url">Link title parent</a>
    <ul>
      <li><a href="url">Link title child</a></li>
    </ul>
  </li>
</ul>
但是,这将禁用整个菜单结构中的所有元素。我只想禁用父链接。“ulli”中的链接,而不是“ulli”中的链接,但我不知道如何搜索,我一直在搜索。所以请帮帮我


编辑:谢谢你的回答。我原以为我会简化问题中的代码,但实际上这对我没有好处。下面是我使用的实际代码:

$('.skaftetopmenu-li').click(function(e) {

   var subid = $(this).attr('id');

   if (subid !="forsidemenu"){

      var str = $('#submenu-content-'+subid).html();

      if ($.trim(str) == ""){

         $('.submenu-content', this).load('http://' + skafte.base_url + '/inc/top-menu-subs/'+subid+'_submenu.html');
      }
   }
});
以及HTML:

<li class="skaftetopmenu-li" id="priser">
   <a href="http://<?php echo DOMAIN?>/priser.php">Priser &amp; Sortiment</a>
   <div class="submenu-content" id="submenu-content-priser"></div>
</li>
它不起作用。

试试这个:

$(".parent > ul > li > a").click( function(e) {
    e.preventDefault();
    // ...
});

只匹配上一个标记的直接子项。

与Austin Mullins的答案类似,我想您希望这样:

$('li.parent > a').click(function(e) {
    e.preventDefault();
});

这在jsbin上对我很有用:

$('.parent>a').on('click', function( e ){
   e.preventDefault();
} );

考虑将选择器更改为指向锚定标记,而不是LI:$('.parent a')是否尝试了<代码>$('.parent a')。单击(函数(e){e.preventDefault();})?这就是我所说的范围蠕变。:)你绝对正确:-)猜猜,我学会了我的错误,将从我下次使用的实际代码开始:D
$('li.parent > a').click(function(e) {
    e.preventDefault();
});
$('.parent>a').on('click', function( e ){
   e.preventDefault();
} );