Dropdown events and methods help you control and respond to user actions on dropdown menus. They make your website interactive and user-friendly.
When you want to run code right after a dropdown opens or closes.
When you need to open or close a dropdown menu using JavaScript.
When you want to change the dropdown behavior based on user clicks.
When you want to add animations or effects when dropdowns show or hide.
When you want to track user interactions with dropdown menus for analytics.
Syntax
Bootsrap
var dropdownElement = document.querySelector('#myDropdown');
// To show dropdown
var dropdown = new bootstrap.Dropdown(dropdownElement);
dropdown.show();
// To hide dropdown
dropdown.hide();
// Listening to events
dropdownElement.addEventListener('show.bs.dropdown', function () {
// Code to run before dropdown shows
});
dropdownElement.addEventListener('shown.bs.dropdown', function () {
// Code to run after dropdown is shown
});
dropdownElement.addEventListener('hide.bs.dropdown', function () {
// Code to run before dropdown hides
});
dropdownElement.addEventListener('hidden.bs.dropdown', function () {
// Code to run after dropdown is hidden
});
Note: Replace #myDropdown with your dropdown's ID or selector.
Tip: Events ending with .bs.dropdown are Bootstrap's custom events.
Examples
This example shows an alert when the dropdown finishes opening.
Bootsrap
<button id="myDropdown"class="btn btn-secondary dropdown-toggle"type="button" data-bs-toggle="dropdown" aria-expanded="false">
Dropdown button
</button>
<ul class="dropdown-menu" aria-labelledby="myDropdown">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
</ul>
<script>
var dropdownElement = document.querySelector('#myDropdown');
var dropdown = new bootstrap.Dropdown(dropdownElement);
dropdownElement.addEventListener('shown.bs.dropdown', function () {
alert('Dropdown is now visible!');
});
</script>
This example opens the dropdown automatically and closes it after 3 seconds.
Bootsrap
<script>
var dropdownElement = document.querySelector('#myDropdown');
var dropdown = new bootstrap.Dropdown(dropdownElement);
// Open dropdown programmatically
dropdown.show();
// Close dropdown after 3 seconds
setTimeout(() => {
dropdown.hide();
}, 3000);
</script>
Sample Program
This page shows a Bootstrap dropdown button. When you click it, the text below changes to tell you if the dropdown is opening, open, closing, or closed. This uses Bootstrap's dropdown events to update the message.
The code listens for the shown.bs.dropdown event and logs 'Dropdown opened' when fired.
Step 2: Analyze dropdown.show() effect
Calling dropdown.show() opens the dropdown and triggers the shown.bs.dropdown event, causing the log.
Final Answer:
Dropdown opened -> Option A
Quick Check:
shown.bs.dropdown triggers console log [OK]
Hint: shown.bs.dropdown fires after show() completes [OK]
Common Mistakes:
Expecting output before dropdown opens
Confusing show() with toggle()
Missing event listener setup
4. Identify the error in this code snippet that tries to hide a Bootstrap dropdown:
const dropdownElement = document.querySelector('#menu');
const dropdown = new bootstrap.Dropdown(dropdownElement);
dropdown.close();
medium
A. Using 'new' keyword instead of getOrCreateInstance
B. Selecting element with wrong ID
C. Calling close() method which does not exist
D. Missing event listener for hide event
Solution
Step 1: Check Bootstrap dropdown methods
Bootstrap dropdown does not have a close() method; it uses toggle() or dispose().
Step 2: Verify object creation
Using new bootstrap.Dropdown() is valid; the error is not here.
Final Answer:
Calling close() method which does not exist -> Option C
Quick Check:
close() method is invalid for Bootstrap dropdown [OK]
Hint: Bootstrap dropdown has no close(), use toggle() or dispose() [OK]
Common Mistakes:
Assuming close() method exists
Confusing close() with jQuery methods
Thinking new keyword causes error
5. You want to run a function only after a Bootstrap dropdown has fully closed. Which event should you listen to, and how do you programmatically close the dropdown?
hard
A. Listen to hide.bs.dropdown event and call dropdown.toggle()
B. Listen to hidden.bs.dropdown event and call dropdown.hide()
C. Listen to hidden.bs.dropdown event and call dropdown.toggle()
D. Listen to hidden.bs.dropdown event and call dropdown.dispose()
Solution
Step 1: Identify event after dropdown closes
The hidden.bs.dropdown event fires after the dropdown is fully closed.
Step 2: Choose method to close dropdown programmatically
Use dropdown.hide() to close the dropdown menu.
Final Answer:
Listen to hidden.bs.dropdown event and call dropdown.hide() -> Option B
Quick Check:
Close dropdown with hide(), detect close with hidden.bs.dropdown [OK]
Hint: Use hidden.bs.dropdown event and hide() to close dropdown [OK]
Common Mistakes:
Listening to hide.bs.dropdown instead of hidden.bs.dropdown
Using toggle() which toggles state instead of specifically closing
Calling dispose() which removes dropdown instance
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.