简体   繁体   English

单击父级时如何使用 jQuery 切换子菜单

[英]How to toggle submenu with jQuery when parent is clicked

I made a dropdown vertical menu, after troubleshooting still cannot figure out why the submenu toggle isn't working as it should.我做了一个下拉垂直菜单,故障排除后仍然无法弄清楚为什么子菜单切换无法正常工作。 I set the submenu in CSS to hide it initially, when the parent list item is clicked I would like the jQuery to toggle.我在 CSS 中设置子菜单以最初隐藏它,当单击父列表项时,我希望 jQuery 切换。 Currently, there's no bug in the browser console, but the toggling is not working properly.目前,浏览器控制台中没有错误,但切换无法正常工作。

Any help will be greatly appreciated.任何帮助将不胜感激。 Thanks!谢谢!

Jquery:查询:

$("li.menu-item-has-children .toggle").click(function(e){
  e.preventDefault();
  $(this).next('.submenu').toggle();

});

HTML HTML

<nav class="navigation">
                <ul class="menu nav-menu">
                  <li class="menu-item menu-item-has-children"><a href="#" class="menu-link main-menu-link">Logo
                    <span class="toggle">
                  <i class="fas fa-chevron-right"></i>
                    </span>

                  </a>
                  <ul class="submenu">
                    <li>sub list</li>
                  </ul>




                </li>
                  <li class="menu-item menu-item-has-children"><a href="#" class="menu-link main-menu-link">Fonts
                    <span class="toggle">
                  <i class="fas fa-chevron-right"></i>
                    </span>
                  </a></li>
                </ul>
              </nav>

CSS: CSS:

.nav-menu li.menu-item-has-children {
    position: relative;
}
.nav-menu li a{
  color: #0a0a0a;
    display: block;
    font-weight: 400;

    position: relative;
    padding: 10px 40px 10px 20px;
    font-size: .875rem;
    line-height: 1.25rem;

}
.nav-menu li.menu-item-has-children .toggle {
  position:absolute;
  right:0;
  transition: transform 400ms cubic-bezier(1,0,1,1),-webkit-transform 400ms cubic-bezier(1,0,1,1),-o-transform 400ms cubic-bezier(1,0,1,1);
}
 .submenu{
  display:none;
}

Please change your script to this请将您的脚本更改为此

$("li.menu-item-has-children").click(function(e){
    e.preventDefault();
    $(this).find('.submenu').toggle();
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM