Javascript 创建边栏切换下拉菜单时出现问题

Javascript 创建边栏切换下拉菜单时出现问题,javascript,jquery,html,css,wordpress,Javascript,Jquery,Html,Css,Wordpress,我正在工作。我试图在侧边栏上创建一个切换下拉菜单,当有人点击侧边栏上的“Tops”链接时触发该菜单,然后切换子菜单中要显示的内容。这是我目前的密码 <style> ul.category ul.sub-menu ul.sub-menu li a{ display:none } </style> <script> jQuery(document).ready(function() { jQuery("#menu-item-746").click(fun

我正在工作。我试图在侧边栏上创建一个切换下拉菜单,当有人点击侧边栏上的“Tops”链接时触发该菜单,然后切换子菜单中要显示的内容。这是我目前的密码

<style>
ul.category ul.sub-menu ul.sub-menu li a{
display:none
}
</style>
<script>
jQuery(document).ready(function() { 
    jQuery("#menu-item-746").click(function() {
        jQuery(this).next("ul.category ul.sub-menu ul.sub-menu li a").toggle();
        return false;   
    });
});
</script>

ul.类别ul.子菜单ul.子菜单li a{
显示:无
}
jQuery(文档).ready(函数(){
jQuery(“#菜单项-746”)。单击(函数(){
jQuery(this).next(“ul.category ul.sub-menu ul.sub-menu li a”).toggle();
返回false;
});
});

这把小提琴有几个问题:

  • 您有一个名为
    #submenu
    的类,它应该是
    submenu
  • 您正在传递
    事件
    ,因此可以使用
    e.preventDefault()
    (除非您希望
    返回false
  • 我建议将subnav
    ul
    设置为
    display:none
    ,然后切换它,我会使用
    slideToggle
    来获得更好的效果
  • JS

    $("#menu-item-746").click(function(e) {
      e.preventDefault();
      $(this).next("ul").slideToggle();
    });
    
    .submenu ul{
      display: none;
    }
    
    HTML

    <ul class="submenu">
       <li  id="menu-item-746"><a href="#">Test Item</a></li>
       <ul>
          <li><a href="#">Test1</a></li>
          <li><a href="#">Test2</a></li>
       </ul>
    </ul>
    

    更新

    我在你的网站上查看了你的HTML,似乎你的
    ul
    subnav是你
    li
    的孩子,而不是兄弟姐妹(它是你的兄弟姐妹)。试试这个:

    $(this).find("ul").slideToggle();
    
    另外,根据您提供的代码,您的目标是
    id
    ,这意味着这只适用于该1个元素。看起来带有subnav的有一个名为
    的类。菜单项有子菜单项
    ,因此我将针对它,如下所示:

    $(".sub-menu .menu-item-has-children").click(function(e) {
       e.preventDefault();
       $(this).find("ul.sub-menu").slideToggle();
    });
    
    新更新

    a
    为目标,然后:

    $(".sub-menu .menu-item-has-children").on("click", " a:first", function(e) {
      e.preventDefault();
      $(this).siblings("ul.sub-menu").slideToggle();
    });
    

    那么问题出在哪里呢?开关坏了。还有一个问题:为什么不使用定制风格的手风琴呢?这适用于Tops链接,但现在其他链接不切换你说其他链接不切换是什么意思?尝试单击底部、外套、附件等。它们在Chrome中切换为meThey toggle,而不是FireFox