javascript - Bootstrap 导航栏悬停时不显示下拉菜单

标签 javascript html css twitter-bootstrap

我正在使用 bootstrap 的导航栏,但遇到一个问题,当其中一个链接是下拉菜单时,菜单不会显示。

查看开发工具,我看到显示没有从无变为 block 。

谁能解释一下这可能是什么问题?是的,bootstrap的css和js都包含在我的元素中。

HTML

<div class="navbar navbar-default" id="div-nav-bar">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-collapse" aria-expanded="false" (click)="showHide()">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <div class="navbar-brand">
                <img src="../assets/images/logo_small.png" alt="IRIS Logo" />
            </div>
        </div>
        <div class="collapse navbar-collapse" id="nav-collapse">
            <ul class="nav navbar-nav">
                <li class="dropdown">
                    <a class="dropdown-toggle" data-toggle="dropdown">
                        <i class="glyphicon glyphicon-dashboard"></i>
                        <span>Dashboards </span>
                        <span class="caret"></span>
                    </a>
                    <ul class="dropdown-menu">
                        <li>
                            <a href="dashboard">
                                <i class="glyphicon glyphicon-facetime-video"></i>
                                <span>Fundus Exams</span>
                            </a>
                        </li>
                        <li>
                            <a href="glaucoma">
                                <i class="glyphicon glyphicon-camera"></i>
                                <span>Glaucoma Exams</span>
                            </a>
                        </li>
                    </ul>
                </li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                        <i class="glyphicon glyphicon-list-alt"></i>
                        <span>Reporting </span>
                        <span class="caret"></span>
                    </a>
                    <ul class="dropdown-menu">
                        <li>
                            <a href="#">
                                <i class="glyphicon glyphicon-folder-open"></i>
                                <span>Results</span>
                            </a>
                        </li>
                        <li class="active">
                            <a href="#">
                                <i class="glyphicon glyphicon-tasks"></i>
                                <span>Patient Result Report</span>
                            </a>
                        </li>
                    </ul>
                </li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li>
                    <a href="grading" class="start-grading">
                        <i class="glyphicon glyphicon-sunglasses"></i>
                        <span>Start Grading</span>
                    </a>
                </li>
                <li role="separator" class="divider">&nbsp;</li>
                <li>
                    <a href="#" class="logout">
                        <i class="glyphicon glyphicon-log-out"></i>
                        <span>Logout</span>
                    </a>
                </li>
            </ul>
        </div>
    </div>
</div>

最佳答案

在 JQuery 代码下方添加 hover 和 mouseleave 将在 hover 时显示下拉菜单。

见下面的片段:

$(function() {
  $(".navbar li.dropdown").hover(function(e) {

    $(this).addClass("open");
  });

  $(".navbar li.dropdown").mouseleave(function() {
    $(this).removeClass("open");
  });
});
/*.dropdown-menu li:hover .sub-menu {
  visibility: visible;
}

.dropdown:hover .dropdown-menu {
  display: block;
} */

.dropdown:hover ul.dropdown-menu {
  animation-name: fadeInLeft;
  animation-fill-mode: both;
  animation-timing-function: ease-out;
  animation-duration: 0.2s;
  animation-delay: 0s;
}

@keyframes fadeInLeft {
from {
visibility: hidden;
opacity: 0;
transform: scale(0) translateX(0);
}
to {
visibility: visible;
opacity: 1;
transform: scale(1) translateX(-25px);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div class="navbar navbar-default" id="div-nav-bar">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#nav-collapse" aria-expanded="false" (click)="showHide()">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
      <div class="navbar-brand">
        <img src="../assets/images/logo_small.png" alt="IRIS Logo" />
      </div>
    </div>
    <div class="collapse navbar-collapse" id="nav-collapse">
      <ul class="nav navbar-nav">
        <li class="dropdown">
          <a class="dropdown-toggle" data-toggle="dropdown">
            <i class="glyphicon glyphicon-dashboard"></i>
            <span>Dashboards </span>
            <span class="caret"></span>
          </a>
          <ul class="dropdown-menu">
            <li>
              <a href="dashboard">
                <i class="glyphicon glyphicon-facetime-video"></i>
                <span>Fundus Exams</span>
              </a>
            </li>
            <li>
              <a href="glaucoma">
                <i class="glyphicon glyphicon-camera"></i>
                <span>Glaucoma Exams</span>
              </a>
            </li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">
            <i class="glyphicon glyphicon-list-alt"></i>
            <span>Reporting </span>
            <span class="caret"></span>
          </a>
          <ul class="dropdown-menu">
            <li>
              <a href="#">
                <i class="glyphicon glyphicon-folder-open"></i>
                <span>Results</span>
              </a>
            </li>
            <li class="active">
              <a href="#">
                <i class="glyphicon glyphicon-tasks"></i>
                <span>Patient Result Report</span>
              </a>
            </li>
          </ul>
        </li>
      </ul>
      <ul class="nav navbar-nav navbar-right">
        <li>
          <a href="grading" class="start-grading">
            <i class="glyphicon glyphicon-sunglasses"></i>
            <span>Start Grading</span>
          </a>
        </li>
        <li role="separator" class="divider">&nbsp;</li>
        <li>
          <a href="#" class="logout">
            <i class="glyphicon glyphicon-log-out"></i>
            <span>Logout</span>
          </a>
        </li>
      </ul>
    </div>
  </div>
</div>

关于javascript - Bootstrap 导航栏悬停时不显示下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47837251/

相关文章:

css - 如何在 Slickgrids 中自动换行标题栏

javascript - AJAX POST 返回 [对象对象]

javascript - Web Worker 中 localStorage 的使用

javascript - onClick下拉菜单响应式网站

html - 将导航栏上的文本居中

javascript - 在选项选择上显示一个 div

html - 打印一个非常宽的 HTML 表格而不裁剪右侧

javascript - 从ajax接收多个变量并使用php将其写入文本文件

javascript - 处理由 from() 创建的 observable 中的 promise 抛出的错误

html - CSS?这个箭头是怎么做出来的?