单击项目时,下拉菜单再次隐藏然后滑动

里卡多·泽(Ricardo Zea)

我只需要轻轻一按,我就快到了。

有一个导航栏,单击它的项目会显示下拉菜单,当您从一个项目单击另一个项目时,下拉菜单会正确折叠,但是当您单击同一项目以折叠其下拉菜单时,下拉菜单会向上滑动然后再次向下滑动。

在CodePen中创建了此演示- (此演示自从我使用工作脚本对其进行了更新以来,现在可以正常工作。请参见下面的答案)

这是我正在使用的基本HTML结构:

<ul class="dd-container fll">
  <li><a href="#">Link 1</a>
    <ul class="dropdown second-level-nav">
      <li><a href="#">SubLink 1</a></li>
      <li><a href="#">SubLink 2</a></li>
      <li><a href="#">SubLink 3</a></li>
    </ul>
  </li>
  <li><a href="#">Link 2</a>
    <ul class="dropdown second-level-nav">
      <li><a href="#">SubLink 1</a></li>
      <li><a href="#">SubLink 2</a></li>
      <li><a href="#">SubLink 3</a></li>
    </ul>
  </li>
  <li><a href="#">Link 3</a>
    <ul class="dropdown second-level-nav">
      <li><a href="#">SubLink 1</a></li>
      <li><a href="#">SubLink 2</a></li>
      <li><a href="#">SubLink 3</a></li>
    </ul>
  </li>
</ul>

<ul class="dd-container flr">
  <li><a href="#">Login</a></li>
  <li><a href="#">Cart</a>
    <ul class="dropdown second-level-nav">
      <li><a href="#">SubLink 1</a></li>
      <li><a href="#">SubLink 2</a></li>
      <li><a href="#">SubLink 3</a></li>
    </ul>
  </li>
</ul>

这是我正在使用的脚本:

//Nav bar dropdowns
$('.dd-container li').click(function(){     
    //Remove class .active from any other <li> and hide any other dropdown that's visible
    $(this).parents().find('.active').removeClass('active').find('.dropdown').slideUp();
    //Toggle class .active
    $(this).toggleClass('active');
    //Slide up/down the actual dropdown     
    $(this).find('.dropdown').stop(true, true).slideToggle();
});

在此先感谢您的任何帮助。

里卡多·泽(Ricardo Zea)

好吧,这比我预期的要多一些工作,但是我终于解决了。

下面的happybuddha和Jeevan的建议不是一个选择,因为我需要能够切换项目的类,以便用户可以清楚地看到该项目处于活动/选中状态。基本上是出于可用性的原因。

CodePen演示工作现在。

工作脚本就是这个脚本(不确定这是否是编写此脚本的最佳方法,但是效果很好):

//Nav bar dropdowns
var dropdown = '.dropdown';
$('.dd-container > li').click(function(){
  //Hide any other dropdown that's visible
  $(this).siblings().find(dropdown).slideUp();
  //Hide Cart dropdown
  $(this).parents('.dd-container').siblings().find(dropdown).slideUp();     
  //Toggle class .active
  $(this).toggleClass('active');
  //Remove class .active from any other <li>
  $(this).parents().find('.active').not(this).removeClass('active');
  //Slide up/down the actual dropdown       
  $(this).find(dropdown).stop(true, true).slideToggle();        
});

为了进行视觉比较,这是旧的无效脚本:

//Nav bar dropdowns
$('.dd-container li').click(function(){     
    //Remove class .active from any other <li> and hide any other dropdown that's visible
    $(this).parents().find('.active').removeClass('active').find('.dropdown').slideUp();
    //Toggle class .active
    $(this).toggleClass('active');
    //Slide up/down the actual dropdown     
    $(this).find('.dropdown').stop(true, true).slideToggle();
});

希望这对以后的人有所帮助。

谢谢。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单击时如何停止下拉菜单子向上滑动

来自分类Dev

单击时隐藏下拉菜单项隐藏吗?

来自分类Dev

单击其项目后隐藏下拉菜单

来自分类Dev

jQuery,单击其他位置时隐藏下拉菜单

来自分类Dev

单击下拉菜单时如何隐藏默认的<select> <option>?

来自分类Dev

单击内部按钮时如何隐藏下拉菜单

来自分类Dev

当单击页面上的任意位置时,下拉菜单隐藏

来自分类Dev

当用户单击下拉菜单的一侧时,如何隐藏下拉菜单?

来自分类Dev

在下拉菜单外的任何地方单击时如何隐藏下拉菜单?

来自分类Dev

单击其他下拉菜单时如何隐藏Boostrap Dropdown子菜单?

来自分类Dev

单击菜单项时折叠或隐藏CSS下拉菜单

来自分类Dev

jQuery下拉菜单-如何在单击主体时隐藏菜单

来自分类Dev

event.stopPropagation(); 隐藏下拉菜单,但单击时不隐藏

来自分类Dev

单击另一个下拉菜单时,下拉菜单中缺少离子选择的项目

来自分类Dev

鼠标离开时隐藏下拉菜单

来自分类Dev

单击链接后可向后滑动的下拉菜单

来自分类Dev

单击时关闭下拉菜单

来自分类Dev

单击项目时,使用下拉菜单引导程序编辑列表项目

来自分类Dev

当我单击引导程序中的下拉菜单时,它会打开,然后自动关闭

来自分类Dev

选择下拉菜单时重定向到其他视图,然后单击按钮

来自分类Dev

隐藏下拉菜单

来自分类Dev

用户单击其他位置时,如何隐藏导航栏的下拉菜单?

来自分类Dev

WordPress主题“ MarryMe”-当我尝试单击Chrome上的最后结果时,下拉菜单隐藏

来自分类Dev

单击页面上任何位置时如何隐藏下拉菜单

来自分类Dev

Ionic-单击下拉菜单中的选项时,最初显示隐藏的div

来自分类Dev

单击按钮时如何在javascript中隐藏/显示下拉菜单

来自分类Dev

如何在使用 Tableau Reader 单击 Tableau 按钮时隐藏下拉菜单

来自分类Dev

单击时显示,然后再次单击时隐藏

来自分类Dev

单击下拉菜单

Related 相关文章

  1. 1

    单击时如何停止下拉菜单子向上滑动

  2. 2

    单击时隐藏下拉菜单项隐藏吗?

  3. 3

    单击其项目后隐藏下拉菜单

  4. 4

    jQuery,单击其他位置时隐藏下拉菜单

  5. 5

    单击下拉菜单时如何隐藏默认的<select> <option>?

  6. 6

    单击内部按钮时如何隐藏下拉菜单

  7. 7

    当单击页面上的任意位置时,下拉菜单隐藏

  8. 8

    当用户单击下拉菜单的一侧时,如何隐藏下拉菜单?

  9. 9

    在下拉菜单外的任何地方单击时如何隐藏下拉菜单?

  10. 10

    单击其他下拉菜单时如何隐藏Boostrap Dropdown子菜单?

  11. 11

    单击菜单项时折叠或隐藏CSS下拉菜单

  12. 12

    jQuery下拉菜单-如何在单击主体时隐藏菜单

  13. 13

    event.stopPropagation(); 隐藏下拉菜单,但单击时不隐藏

  14. 14

    单击另一个下拉菜单时,下拉菜单中缺少离子选择的项目

  15. 15

    鼠标离开时隐藏下拉菜单

  16. 16

    单击链接后可向后滑动的下拉菜单

  17. 17

    单击时关闭下拉菜单

  18. 18

    单击项目时,使用下拉菜单引导程序编辑列表项目

  19. 19

    当我单击引导程序中的下拉菜单时,它会打开,然后自动关闭

  20. 20

    选择下拉菜单时重定向到其他视图,然后单击按钮

  21. 21

    隐藏下拉菜单

  22. 22

    用户单击其他位置时,如何隐藏导航栏的下拉菜单?

  23. 23

    WordPress主题“ MarryMe”-当我尝试单击Chrome上的最后结果时,下拉菜单隐藏

  24. 24

    单击页面上任何位置时如何隐藏下拉菜单

  25. 25

    Ionic-单击下拉菜单中的选项时,最初显示隐藏的div

  26. 26

    单击按钮时如何在javascript中隐藏/显示下拉菜单

  27. 27

    如何在使用 Tableau Reader 单击 Tableau 按钮时隐藏下拉菜单

  28. 28

    单击时显示,然后再次单击时隐藏

  29. 29

    单击下拉菜单

热门标签

归档