javascript - jquery slideDown() 覆盖最后一个元素

标签 javascript jquery html css

我正在尝试在我的移动模式下滑动子菜单下拉菜单。我似乎无法将最后一个元素推开。现在它正在扩展当前选择器上的两里。

<li class="dropdown">
  <a href="#">Solutions</a>  
  <ul class="dropdown-menu">
    <li><a href="#">ERP</a></li>
    <li><a href="#">Module</a></li>
    <li><a href="#">WMS</a></li>
    <li><a href="#">Sales Tax </a></li>
    <li class="dropdown hasKids">
      <a href="#" class="rd-with-ul">Websites &nbsp;<b class="caret-right"></b><span class="rd-submenu-toggle"></span></a>
      <ul class="dropdown-menu websiteClasses">
        <li><a href="#">A</a></li>
        <li><a href="#">B</a></li>
      </ul>
    </li>
  </ul>
</li>
<li><a href="contactUs.html" class="mobileFont">Contact</a></li>


$(".hasKids").on('click', function(){
  $(this).find(">:first-child").toggleClass('active');
})
$(".hasKids").on('click', function(){
  if ($('.hasKids').find(">:first-child").hasClass("active")){
    console.log('active');
    var submenu = $(".hasKids").find(">:nth-child(2)");
    submenu.slideDown();
  } else {
    console.log('not active');
 }
})

所以我只需要 hasKids 下拉列表,当单击时,下拉两个 li 的 A 和 B 并将“联系我们”推开。当再次点击 hasKids 时,下拉菜单会向上滑动。谢谢

最佳答案

请检查这是否是您需要的:

$(".hasKids").on('click', function(){
    $(this).children("a").toggleClass('active');
    var submenu = $(this).children(".dropdown-menu");
    if ($(this).children("a").hasClass("active")){
      console.log('active');     
      submenu.slideDown();
    } else {
      console.log('not active');
      submenu.slideUp();
   }
});

我合并了两个事件处理程序并稍微更改了选择器以依赖于类和标签而不是位置(使用 >:first-child>:nth-child选择器)。

关于javascript - jquery slideDown() 覆盖最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36337421/

相关文章:

html - SharePoint CSS :after not working on IE

javascript - 重复的事件监听器何时被丢弃,何时不被丢弃?

javascript - 将自定义文本传递给新的 Facebook 共享器按钮

javascript - Chart js 饼图或圆环图 3 个而不是 1 个

html - 如何将 Div 的文本从完全不透明淡化为无不透明(无颜色)

html - 如何将固定宽度的网站缩放到 iPad 视口(viewport)

javascript - 通过某个数字获取与数字范围相关联的查找 ID。更好的方法?

javascript - 将嵌套的 knockout View 模型传递给 Controller

jquery - 固定元素的设置高度

javascript - 将两个选项对象与函数合并