Bootstrap Q&A Logo
Bootstrap Q&A Part of the Q&A Network
Real Questions. Clear Answers.
Ask any question about Bootstrap here... and get an instant response.
Q&A Balloon Q&A Logo
Post this Question & Answer:

How do I close dropdowns on click outside when using custom JS?

Asked on Aug 20, 2025

Answer

To close dropdowns when clicking outside of them using custom JavaScript, you can add an event listener to the document that checks if the click target is outside the dropdown. If it is, you manually hide the dropdown.
<!-- BEGIN COPY / PASTE -->
        <div class="dropdown">
            <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-expanded="false">
                Dropdown button
            </button>
            <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
                <li><a class="dropdown-item" href="#">Action</a></li>
                <li><a class="dropdown-item" href="#">Another action</a></li>
                <li><a class="dropdown-item" href="#">Something else here</a></li>
            </ul>
        </div>

        <script>
            document.addEventListener('click', function(event) {
                var dropdown = document.querySelector('.dropdown');
                var isClickInside = dropdown.contains(event.target);

                if (!isClickInside) {
                    var dropdownMenu = dropdown.querySelector('.dropdown-menu');
                    if (dropdownMenu.classList.contains('show')) {
                        bootstrap.Dropdown.getInstance(dropdownMenu).hide();
                    }
                }
            });
        </script>
        <!-- END COPY / PASTE -->
Additional Comment:
  • The code uses Bootstrap's JavaScript API to hide the dropdown.
  • The `document.addEventListener('click', ...)` listens for clicks anywhere on the page.
  • `dropdown.contains(event.target)` checks if the click was inside the dropdown.
  • If the click is outside, it hides the dropdown using Bootstrap's `Dropdown.getInstance().hide()` method.
  • Ensure that Bootstrap's JavaScript is properly included in your project for this to work.
✅ Answered with Bootstrap 5 best practices.
← Back to All Questions

Q&A Network
The Q&A Network
Bootstrap
Ask Questions / Get Answers about Bootstrap!
Cybersecurity
Ask Questions / Get Answers about Cybersecurity!
AI Design
Ask Questions / Get Answers about AI Design!
Networking
Ask Questions / Get Answers about Networking!
DevOps
Ask Questions / Get Answers about DevOps!
Sound Design
Ask Questions / Get Answers about Sound Design!
Performance
Ask Questions / Get Answers about Web Vitals!
Chatbots
Ask Questions / Get Answers about Chatbots!
HTML
Ask Questions / Get Answers about HTML!
AI Audio
Ask Questions / Get Answers about AI Audio!
3D Design
Ask Questions / Get Answers about 3D Design!
Tailwind
Ask Questions / Get Answers about Tailwind!
SEO
Ask Questions / Get Answers about SEO!
Web Languages
Ask Questions / Get Answers about Web Languages!
CSS
Ask Questions / Get Answers about CSS!
AI Writing
Ask Questions / Get Answers about AI Writing!
Cloud Computing
Ask Questions / Get Answers about Cloud Computing!
Web Hosting
Ask Questions / Get Answers about Hosting!
AI Marketing
Ask Questions / Get Answers about AI Marketing!
WordPress
Ask Questions / Get Answers about WordPress!
UI/UX Design
Ask Questions / Get Answers about UI/UX Design!
Robotics
Ask Questions / Get Answers about Robotics!
IoT
Ask Questions / Get Answers about IoT!
Film Production
Ask Questions / Get Answers about Film Production!
MobileDev
Ask Questions / Get Answers about Mobile Developement!
Graphic Design
Ask Questions / Get Answers about Graphic Design!
Video Editing
Ask Questions / Get Answers about Video Editing!
Illustration
Ask Questions / Get Answers about Illustration!
AI Ethics
Ask Questions / Get Answers about AI Ethics!
AI Images
Ask Questions / Get Answers about AI Images!
AI Business
Ask Questions / Get Answers about AI Business!
AI Education
Ask Questions / Get Answers about AI Education!
JavaScript
Ask Questions / Get Answers about JavaScript!
Analytics
Ask Questions / Get Answers about Analytics!
Creative Writing
Ask Questions / Get Answers about Creative Writing!
VR & AR
Ask Questions / Get Answers about VR & AR!
Photography
Ask Questions / Get Answers about Photography!
AI Coding
Ask Questions / Get Answers about AI Coding!
AI Video
Ask Questions / Get Answers about AI Video!
Data Science
Ask Questions / Get Answers about Data Science!
Quantum
Ask Questions / Get Answers about Quantum Computing!
Web Development
Ask Questions / Get Answers about Web Development!
Podcasting
Ask Questions / Get Answers about Podcasting!
Monetization
Ask Questions / Get Answers about Ad & Monetization!
Animation
Ask Questions / Get Answers about Animation!
Security
Ask Questions / Get Answers about Website Security!
Motion Graphics
Ask Questions / Get Answers about Motion Graphics!
AI
Ask Questions / Get Answers about AI!