切换无法在移动设备视图上运行-BS自定义下拉菜单

时间:2020-07-20 04:11:35

标签: javascript html jquery css bootstrap-4

使用一些自定义jQuery和CSS创建了Bootstrap多级下拉导航栏。

但是在移动设备中切换打开和关闭子菜单存在问题。

请看看:

$('.dropdown').hover(function() {
  $(this).children('.dm-lv1').toggleClass('show');
  e.preventDefault();
});

$('.dropdown-submenu').hover(function() {
  $(this).children('.dm-lv2').toggleClass('show');
  e.preventDefault();
});
.dropdown-submenu {
  position: relative;
}

.dropdown-submenu a::after {
  transform: rotate(-90deg);
  position: absolute;
  right: 6px;
  top: .8em;
}

.dropdown-menu {
  top: 0;
  left: 100%;
  box-shadow: 0 0px 5px rgba(0, 0, 0, 0.4);
}

.dropdown-menu {
  top: 90%;
  padding: 0;
  border: 0;
  border-radius: 0;
  border-top: 2px solid #333;
  background: #eee;
}

.dropdown-item {
  padding: .5rem 1rem;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>

<nav class="navbar navbar-expand-lg navbar-light">
  <div class="container">
    <a class="navbar-brand" href="#">Brand</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNavDropdown">
      <ul class="navbar-nav ml-auto">
        <li class="nav-item active"><a class="nav-link" href="#">Home</a></li>

        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            Products
          </a>
          <ul class="dropdown-menu dm-lv1 animate slideIn" aria-labelledby="navbarDropdownMenuLink">
            <li><a class="dropdown-item" href="#">Dropdown Menu</a></li>
            <li><a class="dropdown-item" href="#">Dropdown Menu</a></li>
            <li class="dropdown-submenu">
              <a class="dropdown-item dropdown-toggle" href="#">Submenu Items</a>
              <ul class="dropdown-menu dm-lv2 animate slideIn">
                <li><a class="dropdown-item" href="#">Submenu action</a></li>
                <li><a class="dropdown-item" href="#">Submenu action</a></li>
              </ul>
            </li>
          </ul>
        </li>
        <li class="nav-item active"><a class="nav-link" href="#">Clients</a></li>
        <li class="nav-item active"><a class="nav-link" href="#">News</a></li>
        <li class="nav-item active"><a class="nav-link" href="#">Contact US</a></li>
      </ul>
    </div>
  </div>
</nav>

如何在点击时切换(打开和关闭)此下拉菜单和子菜单下拉菜单?

1 个答案:

答案 0 :(得分:0)

将e添加到脚本功能中,如下所示:

<script>
    $('.dropdown').hover(function (e) {
        $(this).children('.dm-lv1').toggleClass('show');
        e.preventDefault();
    });

    $('.dropdown-submenu').hover(function (e) {
        $(this).children('.dm-lv2').toggleClass('show');
        e.preventDefault();
    });
</script>
相关问题