【问题标题】:Why dropdown dont work in bootstrap5 navbar?为什么下拉菜单在 bootstrap 5 导航栏中不起作用?
【发布时间】:2021-04-08 18:04:57
【问题描述】:

我尝试使用引导导航栏并编写以下代码:

<nav class="navbar navbar-expand-lg navbar-light bg-light">
        <div class="container-fluid">
            <a class="navbar-brand" href="#">Navbar</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarGeneral" aria-controls="navbarGeneral" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>

            <div class="collapse navbar-collapse" id="navbarGeneral">
                
    <ul class="nav navbar-nav">
                <li class="nav-item ">
                        <a href="http://localhost:8080/" class="nav-link">Home 
                        </a>
                    
                </li>
                <li class="nav-item active">
                        <a href="http://localhost:8080/bootstrap5" class="nav-link">bootstrap5 
                        </a>
                    
                </li>
                <li class="nav-item">
                        <a href="http://localhost:8080/home4" class="nav-link">home4 
                        </a>
                    
                </li>
                <li class="nav-item  dropdown">
                        <a href="http://localhost:8080/LoginPage" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-expanded="false">LoginPage 
                        </a>
                        <ul class="dropdown-menu">
                <li class="nav-item  ">
                        <a href="http://localhost:8080/LoginPage/Bootstrap-34" class="dropdown-item">Bootstrap 3.4 
                        </a>
                    
                </li>
        </ul>

                </li>
        </ul>


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

点击登录页面时出现错误

未捕获的 DOMException:无法执行“querySelector” “文档”:“http://localhost:8080/LoginPage”不是有效的选择器。

什么问题?

Jsfiddle

【问题讨论】:

  • 你是否添加了引导程序CDN Link
  • @Ahmar Aamir 是的
  • 在任何其他浏览器上检查您的webpage

标签: navbar bootstrap-5


【解决方案1】:

无法切换下拉菜单,因为锚标记正在尝试导航。从 href 中删除 url...

     <li class="nav-item dropdown">
           <a href="#" class="nav-link dropdown-toggle" 
              data-bs-toggle="dropdown" 
              role="button" aria-expanded="false">LoginPage</a>
           <ul class="dropdown-menu">
               <li class="nav-item ">
                  <a href="http://localhost:8080/LoginPage/Bootstrap-34" class="dropdown-item">Bootstrap</a>
               </li>
           </ul>
     </li>

未来读者请注意:大多数 Bootstrap 5“下拉菜单不起作用”问题是由于未能use the new data-bs- attributes

【讨论】:

    【解决方案2】:

    使用它并告诉我它是否有效

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <title>JS Bin</title>
      <script src="https://code.jquery.com/jquery-3.1.0.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js?cdv=40" type="text/javascript"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css?cdv=40" type="text/css" rel="stylesheet"/>
    </head>
    <body>
      <nav class="navbar navbar-expand-lg navbar-light bg-light">
            <div class="container-fluid">
                <a class="navbar-brand" href="#">Navbar</a>
                <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarGeneral" aria-controls="navbarGeneral" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                </button>
    
                <div class="collapse navbar-collapse" id="navbarGeneral">
                    
        <ul class="nav navbar-nav">
                    <li class="nav-item ">
                            <a href="http://localhost:8080/" class="nav-link">Home 
                            </a>
                        
                    </li>
                    <li class="nav-item active">
                            <a href="http://localhost:8080/bootstrap5" class="nav-link">bootstrap5 
                            </a>
                        
                    </li>
                    <li class="nav-item">
                            <a href="http://localhost:8080/home4" class="nav-link">home4 
                            </a>
                        
                    </li>
                    <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                LoginPage
              </a>
              <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
                <li><a class="dropdown-item" href="#">Action</a></li>
                <li><a class="dropdown-item" href="#">Another action</a></li>
                <li><hr class="dropdown-divider"></li>
                <li><a class="dropdown-item" href="#">Something else here</a></li>
              </ul>
            </li>
            </ul>
    
    
                </div>
            </div>
        </nav>
    </body>
    </html>

    【讨论】:

    • 好的。目前工作
    • 什么问题?
    • 您没有在下拉代码中使用&lt;ul class="dropdown-menu" aria-labelledby="navbarDropdown"&gt; this。这是 bootstrap 5 中的内置类,是制作链接下拉菜单所必需的
    • 我删除了“登录页面”链接并解决了。可以看到jsfiddle
    猜你喜欢
    • 2013-08-31
    • 2021-09-23
    • 2021-11-13
    • 2015-02-10
    • 1970-01-01
    • 2020-04-08
    相关资源
    最近更新 更多