Bootstrap Q&A Logo
Bootstrap Q&A Part of the Q&A Topic Learning 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
Real Questions. Clear Answers.
Bootstrap
Ask Questions / Get Answers about Bootstrap!
AI Business
Ask Questions / Get Answers about AI Business!
AI Marketing
Ask Questions / Get Answers about AI Marketing!
Animation
Ask Questions / Get Answers about Animation!
Monetization
Ask Questions / Get Answers about Ad & Monetization!
Robotics
Ask Questions / Get Answers about Robotics!
Business Finance
Ask Questions / Get Answers about Business Finance!
Video Editing
Ask Questions / Get Answers about Video Editing!
Quantum
Ask Questions / Get Answers about Quantum Computing!
Security
Ask Questions / Get Answers about Website Security!
Web Development
Ask Questions / Get Answers about Web Development!
Digital Burnout
Ask Questions / Get Answers about Digital Burnout!
SEO
Ask Questions / Get Answers about SEO!
Podcasting
Ask Questions / Get Answers about Podcasting!
AI Coding
Ask Questions / Get Answers about AI Coding!
AI Ethics
Ask Questions / Get Answers about AI Ethics!
VR & AR
Ask Questions / Get Answers about VR & AR!
AI Video
Ask Questions / Get Answers about AI Video!
HTML
Ask Questions / Get Answers about HTML!
Photography
Ask Questions / Get Answers about Photography!
Networking
Ask Questions / Get Answers about Networking!
3D Design
Ask Questions / Get Answers about 3D Design!
Chatbots
Ask Questions / Get Answers about Chatbots!
AI
Ask Questions / Get Answers about AI!
JavaScript
Ask Questions / Get Answers about JavaScript!
AI Education
Ask Questions / Get Answers about AI Education!
Film Production
Ask Questions / Get Answers about Film Production!
WordPress
Ask Questions / Get Answers about WordPress!
MobileDev
Ask Questions / Get Answers about Mobile Developement!
Motion Graphics
Ask Questions / Get Answers about Motion Graphics!
AI Design
Ask Questions / Get Answers about AI Design!
Data Science
Ask Questions / Get Answers about Data Science!
Web Hosting
Ask Questions / Get Answers about Hosting!
Illustration
Ask Questions / Get Answers about Illustration!
Sound Design
Ask Questions / Get Answers about Sound Design!
UI/UX Design
Ask Questions / Get Answers about UI/UX Design!
Tailwind
Ask Questions / Get Answers about Tailwind!
AI Writing
Ask Questions / Get Answers about AI Writing!
Creative Writing
Ask Questions / Get Answers about Creative Writing!
IoT
Ask Questions / Get Answers about IoT!
DevOps
Ask Questions / Get Answers about DevOps!
Social Media Psychology
Ask Questions / Get Answers about Social Media Psychology!
Graphic Design
Ask Questions / Get Answers about Graphic Design!
AI Images
Ask Questions / Get Answers about AI Images!
AI Audio
Ask Questions / Get Answers about AI Audio!
Analytics
Ask Questions / Get Answers about Analytics!
Nursing
Ask Questions / Get Answers about Nursing!
Cloud Computing
Ask Questions / Get Answers about Cloud Computing!
CSS
Ask Questions / Get Answers about CSS!
Performance
Ask Questions / Get Answers about Web Vitals!
Cybersecurity
Ask Questions / Get Answers about Cybersecurity!
Web Languages
Ask Questions / Get Answers about Web Languages!