Bootstrap

Why don't Bootstrap 5 navbar dropdowns open when clicked, despite correct HTML?

March 18, 2026

download ready
Thank You
Your submission has been received.
We will be in touch and contact you soon!

Bootstrap 5 requires data-bs-toggle="dropdown" instead of v4's data-toggle. Missing JS bundle (includes Popper) or duplicate scripts prevent functionality. No console errors occur, but dropdown silently fails.

Step 1: Fix Data Attributes

Replace v4 attributes with v5 data-bs-* prefix

Code

<!-- Wrong (Bootstrap 4 syntax) -->
<button class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
  Dropdown
</button>

<!-- Correct (Bootstrap 5 syntax) -->
<button class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
  Dropdown
</button>
      

Step 2:-Include Correct JS Bundle

Add Bootstrap 5 bundle.js (contains Popper + Dropdown) before </body>

Code

<!DOCTYPE html>
<html>
<head>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
  <div class="dropdown">
    <button class="btn btn-primary dropdown-toggle" type="button" 
            data-bs-toggle="dropdown" aria-expanded="false">
      Dropdown Menu
    </button>
    <ul class="dropdown-menu">
      <li><a class="dropdown-item" href="#">Action 1</a></li>
      <li><a class="dropdown-item" href="#">Action 2</a></li>
    </ul>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
      

Step 3: Navbar-Specific Fix

Complete navbar dropdown implementation

Code

<nav class="navbar navbar-expand-lg bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Brand</a>
    <button class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbarNav">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNav">
      <ul class="navbar-nav">
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown">
            Dropdown
          </a>
          <ul class="dropdown-menu">
            <li><a class="dropdown-item" href="#">Item 1</a></li>
          </ul>
        </li>
      </ul>
    </div>
  </div>
</nav>
      

4: Debug Checklist

Code

data-bs-toggle="dropdown" (not data-toggle)
.dropdown-toggle class on button
bootstrap.bundle.min.js before </body>
No duplicate Bootstrap JS includes
Console (F12) shows no errors
Test minimal example first
      
Hire Now!

Need Help with Bootstrap Development ?

Work with our skilled bootstrap developers to accelerate your project and boost its performance.
**Hire now**Hire Now**Hire Now**Hire now**Hire now

Why don't Bootstrap 5 navbar dropdowns open when clicked, despite correct HTML?

Bootstrap 5 requires data-bs-toggle="dropdown" instead of v4's data-toggle. Missing JS bundle (includes Popper) or duplicate scripts prevent functionality. No console errors occur, but dropdown silently fails.

Step 1: Fix Data Attributes

Replace v4 attributes with v5 data-bs-* prefix

Code

<!-- Wrong (Bootstrap 4 syntax) -->
<button class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
  Dropdown
</button>

<!-- Correct (Bootstrap 5 syntax) -->
<button class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
  Dropdown
</button>
      

Step 2:-Include Correct JS Bundle

Add Bootstrap 5 bundle.js (contains Popper + Dropdown) before </body>

Code

<!DOCTYPE html>
<html>
<head>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
  <div class="dropdown">
    <button class="btn btn-primary dropdown-toggle" type="button" 
            data-bs-toggle="dropdown" aria-expanded="false">
      Dropdown Menu
    </button>
    <ul class="dropdown-menu">
      <li><a class="dropdown-item" href="#">Action 1</a></li>
      <li><a class="dropdown-item" href="#">Action 2</a></li>
    </ul>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
      

Step 3: Navbar-Specific Fix

Complete navbar dropdown implementation

Code

<nav class="navbar navbar-expand-lg bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Brand</a>
    <button class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbarNav">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNav">
      <ul class="navbar-nav">
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown">
            Dropdown
          </a>
          <ul class="dropdown-menu">
            <li><a class="dropdown-item" href="#">Item 1</a></li>
          </ul>
        </li>
      </ul>
    </div>
  </div>
</nav>
      

4: Debug Checklist

Code

data-bs-toggle="dropdown" (not data-toggle)
.dropdown-toggle class on button
bootstrap.bundle.min.js before </body>
No duplicate Bootstrap JS includes
Console (F12) shows no errors
Test minimal example first