【问题标题】:Dropdown menu with hover/mouseover event in jQueryjQuery中带有悬停/鼠标悬停事件的下拉菜单
【发布时间】:2017-07-11 06:26:17
【问题描述】:

我试图制作和悬停下拉菜单,但我不能,不是真的,我可以让菜单只切换特定项目,我的代码显示所有可用项目:

代码在这里:

$(document).on('ready', function(){
       var timeout = 0;
       $('.nav').hover(function(){
            $('.dropdown-menu').slideDown('fast');
       },function(){
             timeout = setTimeout(hideMenu,300);
        });
    
       $(".dropdown-menu").hover(function(){
           clearTimeout(timeout);
       },function(){
           hideMenu();
       });
    });
    
    function hideMenu(){
        $(".dropdown-menu").slideUp('fast');
     }
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<nav class="navbar  navbar-static-top navbar-default">
                <div class="container">
                  <div id="cls">
                    <div class="navbar-header center">
                      <div class="navbar-header">
                        <a href="/"><img class="logo" src="paruno_logo.png"></a>
                        <ul id="main-menu" class="nav navbar-nav ref">
                          <li class="dropdown dropdown-large option">
                            <a id="drop-to" href="/femenino/calzado" class="dropdown-toggle firstTextOption" data-toggle="dropdown">GIRL</a>
                              <ul class="dropdown-menu dropdown-menu-large row change-f">
                                <li class="n-smasd">
                                    <ul>
                                        <li class="dropdown-header title"><a href="/femenino/calzado/zapato">Zapatos</a></li>
                                    </ul>
                                    <ul>
                                        <li class="dropdown-header title"><a href="/femenino/calzado/botin">Botines</a></li>
                                    </ul>
                                    <ul>
                                        <li class="dropdown-header title"><a href="/femenino/calzado/bota">Botas</a></li>
                                    </ul>
                                    <ul>
                                        <li class="dropdown-header title"><a href="/femenino/calzado/sandalia">Sandalias</a></li>
                                    </ul>
                                    <ul>
                                        <li class="dropdown-header title"><a href="/femenino/calzado/tenis">Tenis</a></li>
                                    </ul>
                                </li>
                              </ul>
                          </li>
                          <li class="dropdown dropdown-large option hidden-sm hidden-xs">|</li>
                          <li class="dropdown dropdown-large option">
                            <a id="drop-to" href="/masculino/calzado" class="dropdown-toggle firstTextOption" data-toggle="dropdown">HUMMIE</a>
                            <ul class="dropdown-menu dropdown-menu-large row change-f">
                                <li class="col-sm-3 option-sm">
                                    <ul>
                                        <li class="dropdown-header title"><a href="/masculino/calzado/casual">Casuales</a></li>
                                    </ul>
                                    <ul>
                                        <li class="dropdown-header title"><a href="/masculino/calzado/mocasin">Mocasines</a></li>
                                    </ul>
                                </li>
                                <li class="col-sm-3 option-sm">
                                  <ul>
                                      <li class="dropdown-header title"><a href="/masculino/calzado/bota">Botas</a></li>
                                  </ul>
                                  <ul>
                                      <li class="dropdown-header title"><a href="/masculino/calzado/tenis">Tenis</a></li>
                                  </ul>
                                </li>
                            </ul>
                          </li>
                          <li class="dropdown dropdown-large option hidden-sm hidden-xs">|</li>
                          <li class="dropdown dropdown-large option">
                            <a id="drop-to" href="#" class="dropdown-toggle firstTextOption" data-toggle="dropdown">SOULCREATION</a>
                              <ul class="dropdown-menu dropdown-menu-large row change-f">
                                <li class="col-sm-3 option-sm">
                                    <ul>
                                        <li class="dropdown-header title"><a href="/rapsodia_lookbook_fall16/">ANGER</a></li>
                                    </ul>
                                </li>
                                <li class="col-sm-3 option-sm">
                                    <ul>
                                        <li class="dropdown-header title"><a href="/rapsodia-lookbook-2/">SOUL</a></li>
                                    </ul>
                                </li>
                                <li class="col-sm-3 option-sm">
                                    <ul>
                                        <li class="dropdown-header title"><a href="/revista-rapsodia-1/">URBAN</a></li>
                                    </ul>
                                </li>
                                <li class="col-sm-3 option-sm">
                                    <ul>
                                        <li class="dropdown-header title"><a href="/revista-rapsodia-1/">ART</a></li>
                                    </ul>
                                </li>
                                <li class="col-sm-3 option-sm">
                                    <ul>
                                        <li class="dropdown-header title"><a href="/revista-rapsodia-1/">ALAN ARROUND THE MUNDO</a></li>
                                    </ul>
                                </li>
                              </ul>
                          </li>
                          <li class="dropdown dropdown-large option hidden-sm hidden-xs">|</li>
                          <li class="dropdown dropdown-large option">
                            <a id="drop-to" href="/femenino/calzado" class="dropdown-toggle firstTextOption"> MAGNIFICIENT </a>
                          </li>
                        </ul>                
                      </div>
                    <!-- /MB -->
                    </div>
                  </div>
                </div>

为了提供更多信息,我使用 Bootstrap 来制作响应式navbar,我不想使用 Bootstrap 中的 Javascript,因为我想获得纯 Javascript。

【问题讨论】:

  • 我没有完全理解你的问题是什么。你想实现什么,什么行不通?
  • 如果你“想要一个纯Javascript”,你为什么要使用jQuery?
  • @maximelian1986,我不能只显示一个子菜单,当我尝试打开其中一个元素时,所有元素同时打开

标签: javascript jquery html css twitter-bootstrap-3


【解决方案1】:

好的,当您使用 Jquery 和 bootstrap(也使用 Jquery)时,不知道纯 js 是什么意思。但是将该函数添加到您的代码中

$(document).on('mouseover','.dropdown-toggle',function(e){
    $(this).parent('li').children('ul').slideDown('fast');
});

这将打开下拉菜单。对于隐藏它,您可以进行更多研究。

我还注意到您有几个具有相同 id="drop-to" 的元素。 ID 值应该是唯一的!多个元素的名称和类可以相同。

【讨论】:

  • 它有效,只是在鼠标离开关闭下拉菜单时丢失,但没关系,比你!
猜你喜欢
  • 1970-01-01
  • 2013-07-16
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-22
  • 1970-01-01
相关资源
最近更新 更多