Jquery 3级菜单子链接

Jquery 3级菜单子链接,jquery,drop-down-menu,multi-level,Jquery,Drop Down Menu,Multi Level,我在StackOverflow中看到了一个简单的代码。这很好,但我遇到的问题是子链接似乎不起作用,它没有转到它分配给的URL 这是我的HTML: <ul class="menu"> <li><a href="#">First Link</a> <ul class="depth2"> <li><a href="http://www.google.com">Go to Google</a&g

我在StackOverflow中看到了一个简单的代码。这很好,但我遇到的问题是子链接似乎不起作用,它没有转到它分配给的URL

这是我的HTML:

<ul class="menu">

<li><a href="#">First Link</a>   
  <ul class="depth2">
    <li><a href="http://www.google.com">Go to Google</a></li>
    <li><a href="http://www.yahoo.com">Go to Yahoo</a></li>
  </ul> 
</li>

</ul>
下面是jQuery:

<script>
  (function($){ 
    $('.menu a').click(function( e ){
      e.preventDefault();
      $(this).parent('li').find('ul:first').slideToggle();    
    });
  })(jQuery);
</script>

(函数($){
$('.menu a')。单击(函数(e){
e、 预防默认值();
$(this).parent('li').find('ul:first').slideToggle();
});
})(jQuery);
我觉得缺少一行简单的代码来让它工作。非常感谢您抽出时间。

e.preventDefault()阻止链接执行其默认操作,转到其指定的url。这就是你的链接起作用的原因。您可以将查询更改为
”。菜单>li>a'
仅选择顶级链接

<script>
    (function($){ 
    $('.menu > li > a').click(function( e ){
        e.preventDefault();
        $(this).parent('li').find('ul:first').slideToggle();    
    });
    })(jQuery);
</script>

(函数($){
$('.menu>li>a')。单击(函数(e){
e、 预防默认值();
$(this).parent('li').find('ul:first').slideToggle();
});
})(jQuery);

我以前试过,但没有用。我不知道你的代码为什么起作用,但是的,这解决了我的问题。非常感谢。您提供的代码不起作用,因为jQuery选择器正在选择菜单中的每个链接,并阻止它执行其默认操作。我提供的代码只选择顶级链接,允许其他链接正常工作。现在这有意义吗?是的。我的意思是,我以前试过在列表之间使用“>”,但没有效果。我肯定我错过了一些元素什么的。谢谢你的解释。