引导程序下拉菜单中的子菜单不起作用

时间:2020-09-24 14:50:00

标签: bootstrap-4 frontend

所以我无法正常使用下拉菜单。下拉菜单的第一级工作正常,但是我没有打开子菜单,当我单击它时,它只是关闭菜单而不更改任何内容。

下面是我正在使用的代码,而未显示的子菜单部分是包含“添加项目”,“编辑项目”和“删除项目”的列表

                  <a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Admin</a>
                    <div class="dropdown-menu bg-dark" aria-labelledby="dropdownMenuLink">
                    <ul className="nav navbar-nav">
                     <li class="nav-item">
                     {/*  This Line will hold the link to the User Management page  */}
                       <a className="dropdown-item " href="#"><Link to={'/missionReports'} className="nav-link">Mission Reports</Link></a></li>
                      <li class="nav-item dropdown">
                        <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown"> Data Management </a>
                                <ul class="dropdown-menu">
                                    <li><a className="dropdown-item " href="#"><Link to={'/AddInfo'} className="nav-link">Add Item</Link></a></li>
                                    <li><a className="dropdown-item" href="#"><Link to={'/EditInfo'} className="nav-link">Edit Item</Link></a></li>
                                    <li><a className="dropdown-item" href="#"><Link to={'/DeleteInfo'} className="nav-link">Delete Item</Link></a></li>
                               </ul>
                            </li>
                      </ul>
                    </div>
                </div>```

2 个答案:

答案 0 :(得分:0)

选中此选项,它将为您提供帮助。

这是一个多层子菜单下拉菜单。它为我工作。请检查并告知我。


根据CSS更改CSS。根据您的需要。

$(document).on('click', '.dropdown-menu', function (e) {
  e.stopPropagation();
});

if ($(window).width() < 992) {
  $('.dropdown-menu a').click(function(e){
    e.preventDefault();
      if($(this).next('.submenu').length){
        $(this).next('.submenu').toggle();
      }
      $('.dropdown').on('hide.bs.dropdown', function () {
     $(this).find('.submenu').hide();
  })
  });
}
    .nav-item, .dropdown-item{
        background-color: lightgrey !important;
        color: black !important;
        padding: 5px !important;
    }
    .nav-item:hover, .dropdown-item:hover{
        background-color: grey !important;
        color: white !important;
        padding: 5px !important;
    }
    a{
        text-decoration: none !important;
        color: black !important;
    }
<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
  
</head>
<body>

<div class="container">
 <nav class="navbar navbar-expand-lg navbar-dark">
    <button class="navbar-toggler text-danger bg-white" type="button" data-toggle="collapse" data-target="#main_nav">My Multi-Layer Dropdown
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="main_nav">

<ul class="navbar-nav list-unstyled">
    <li class="nav-item"> 
        <a class="nav-link" href="#">First Level Item 1 </a>    
    </li>
    <li class="nav-item"> 
        <a class="nav-link" href="#">First Level Item 2 </a>
    </li>
    <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-expanded="true"> First Level Item 3    
            <span class="caret"></span> 
        </a>
        <ul class="dropdown-menu list-unstyled">
            <li><a class="dropdown-item" href="#">Second Level Item 3.1 </a> </li>
            <li>
                <a class="dropdown-item" href="#">Second Level Item 3.2 
                    <span class="caret"></span> 
                </a>
                <ul class="submenu dropdown-menu">
                    <li><a class="dropdown-item" href="">Third Level Item 3.2.1</a></li>
                    <li>
                        <a class="dropdown-item" href="">Third Level Item 3.2.2
                            <span class="caret"></span> 
                        </a>
                        <ul class="submenu dropdown-menu">
                            <li><a class="dropdown-item" href="">Forth Level Item 3.2.2.1</a></li>
                            <li><a class="dropdown-item" href="">Forth Level Item 3.2.2.2</a></li>
                        </ul>
                     </li>
                    <li><a class="dropdown-item" href="">Third Level Item 3.2.3</a></li>
                    <li><a class="dropdown-item" href="">Third Level Item 3.2.4</a></li>
                </ul>
            </li>
            <li><a class="dropdown-item" href="#">Second Level Item 3.3 </a></li>
         </ul>
     </li>
</ul>

</div> 
</nav>
</div>

</body>
</html>

答案 1 :(得分:0)

检查代码,让我知道它是否正常运行。


我已经尝试过,两者都是正确的。使用和更改CSS。我已经做好了 仅适用于工作子菜单下拉菜单。两者都是相同的,只是它们有些微小的变化。 >希望您也一样。让我知道。

$(document).on('click', '.dropdown-menu', function (e) {
  e.stopPropagation();
});

if ($(window).width() < 992) {
  $('.dropdown-menu a').click(function(e){
    e.preventDefault();
      if($(this).next('.submenu').length){
        $(this).next('.submenu').toggle();
      }
      $('.dropdown').on('hide.bs.dropdown', function () {
     $(this).find('.submenu').hide();
  })
  });
}
<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
 
</head>
<body>

<div class="container">
<ul class="list-unstyled">
 <li class="nav-item dropdown">
        <a class="btn btn-primary dropdown-toggle" href="#" data-toggle="dropdown" aria-expanded="true"> Multiple submenu dropdown  </a>
        <ul class="dropdown-menu">
          <li><a class="dropdown-item" href="#"> Dropdown item 1 </a></li>
          <li><a class="dropdown-item" href="#"> Dropdown item 2 » </a>
             <ul class="submenu dropdown-menu">
                <li><a class="dropdown-item" href="">Submenu item 1</a></li>
                <li><a class="dropdown-item" href="">Submenu item 2</a></li>
                <li><a class="dropdown-item" href="">Submenu item 3 » </a>
                    <ul class="submenu dropdown-menu">
                        <li><a class="dropdown-item" href="">Multi level 1</a></li>
                        <li><a class="dropdown-item" href="">Multi level 2</a></li>
                    </ul>
                </li>
                <li><a class="dropdown-item" href="">Submenu item 4</a></li>
                <li><a class="dropdown-item" href="">Submenu item 5</a></li>
             </ul>
          </li>
          <li><a class="dropdown-item" href="#"> Dropdown item 3 </a></li>
          <li><a class="dropdown-item" href="#"> Dropdown item 4 </a>
        </li></ul>
    </li>
</ul>
</div>


</body>
</html>