当另一个项目悬停时关闭菜单

时间:2016-07-20 20:08:13

标签: javascript jquery html css twitter-bootstrap

我正在创建一个包含两个下拉列表的菜单。我需要在菜单项悬停时打开下拉菜单,但如果另一个菜单项悬停在上面则关闭。

如果我将鼠标悬停在第二个菜单项上,我遇到的问题是第一个下拉菜单关闭。

请在此处查看我的小提琴:http://www.bootply.com/uEKWCdNj4C

我已经查看了其他问题,而且这个问题似乎可能有用,但我在将其应用到我的情况时遇到了麻烦:Vertical Menu to stay open on hover then close when another is hovered

所以我很抱歉,如果这是重复...任何帮助将不胜感激。谢谢!

5 个答案:

答案 0 :(得分:1)

您可以在打开//check your sharedPreferences data first and if empty try to login // else move to next activity 之前致电slideup,然后再拨打ul。如下所示

slidedown

答案 1 :(得分:0)

因此,在悬停的元素上设置class="isHovered"。 设置框class="isHovered"以及..

如果再次调用hover,或者说mouseenter,则检查当前框和另一个框上是否设置了isHovered ...或者在那里的任何框中迭代可能是......

您还可以将当前悬停的元素ID存储在变量和框ID中。然后使用这些值。由于JS不是多线程的,因此您可以依赖执行顺序......

答案 2 :(得分:0)

您只需更新脚本即可调用slideUp函数:

$(".nav-basic").hover(function () {
      $('ul.menu-basic').slideDown('medium');
     $('ul.menu-applied').slideUp('medium'); 
  });


  $(".nav-applied").hover(function () {    
      $('ul.menu-basic').slideUp('medium');
      $('ul.menu-applied').slideDown('medium');
  });

答案 3 :(得分:0)

您的代码可以使用一些优化,但您基本上可以在不属于目标类的所有其他slideUp()元素上调用$(.menu-interior')

示例:$('.menu-interior:not(.menu-basic)').slideUp();

请参阅此处的分叉小提琴:http://www.bootply.com/DZxktgUtjh

注意:这将关闭任何其他打开菜单,而不必在菜单增长时对所有其他类进行硬编码。

答案 4 :(得分:0)

 $(document).ready(function() {

     $(".nav-basic").hover(function() {
         $('ul.menu-basic').slideToggle('medium');
     });

     $(".nav-applied").hover(function() {
         $('ul.menu-applied').slideToggle('medium');
     });

 });