I have a bit Javascript, which controls the drop down menu when it is on click
<script>
function show_menu(){
var menu = document.getElementById('dropdown_menu');
if(menu.style.display == 'block'){
menu.style.display = 'none';
}else {
menu.style.display = 'block';
}
}
</script>
Here is HTML
<nav>
<div class="dropdown_button" class="menu_button" onClick="show_menu()">Schedule 1</div>
<div id="dropdown_menu" class="hidden_menu">
<ul>
<li>option 1</li>
<li>option 2</li>
</ul>
</div>
</nav>
Here is a style
<style>
.hidden_menu{display:none}
</style>
Everything works fine so far, but if I add one more dropdown set into the menu bar, they don't work because ID="dropdown_menu" is for only one element, not for another one.
<nav>
<div class="dropdown_button" class="menu_button" onClick="show_menu()">Schedule 1</div>
<div id="dropdown_menu" class="hidden_menu">
<ul>
<li>option 1</li>
<li>option 2</li>
</ul>
</div>
<div class="dropdown_button" class="menu_button" onClick="show_menu()">Schedule 2</div>
<div id="dropdown_menu" class="hidden_menu">
<ul>
<li>option 3</li>
<li>option 4</li>
</ul>
</div>
</nav>
How can I solve this problem? please give me a hand. Thanks
I have a bit Javascript, which controls the drop down menu when it is on click
<script>
function show_menu(){
var menu = document.getElementById('dropdown_menu');
if(menu.style.display == 'block'){
menu.style.display = 'none';
}else {
menu.style.display = 'block';
}
}
</script>
Here is HTML
<nav>
<div class="dropdown_button" class="menu_button" onClick="show_menu()">Schedule 1</div>
<div id="dropdown_menu" class="hidden_menu">
<ul>
<li>option 1</li>
<li>option 2</li>
</ul>
</div>
</nav>
Here is a style
<style>
.hidden_menu{display:none}
</style>
Everything works fine so far, but if I add one more dropdown set into the menu bar, they don't work because ID="dropdown_menu" is for only one element, not for another one.
<nav>
<div class="dropdown_button" class="menu_button" onClick="show_menu()">Schedule 1</div>
<div id="dropdown_menu" class="hidden_menu">
<ul>
<li>option 1</li>
<li>option 2</li>
</ul>
</div>
<div class="dropdown_button" class="menu_button" onClick="show_menu()">Schedule 2</div>
<div id="dropdown_menu" class="hidden_menu">
<ul>
<li>option 3</li>
<li>option 4</li>
</ul>
</div>
</nav>
How can I solve this problem? please give me a hand. Thanks
Share Improve this question asked Nov 14, 2013 at 5:20 abcid dabcid d 2,9638 gold badges36 silver badges52 bronze badges3 Answers
Reset to default 2As I look at the code, in both places the ID is the same <div id="dropdown_menu" class="hidden_menu">
You should give different IDs for different divs and you can pass some parameter in the JavaScript method to identify the div inside the script.
try to send the id as argument of the div you want to show and all ids to unique ones
function show_menu(id)
change your html like this
onClick="show_menu('IdOfTheDiv')"
For EX:
<div class="dropdown_button" class="menu_button" onClick="show_menu('dropdown_menu')">Schedule 1</div>
function show_menu(id){
var menu = document.getElementById(id);
if(menu.style.display == 'block'){
menu.style.display = 'none';
}else {
menu.style.display = 'block';
}
}
Try using 'this' :
function show_menu(this){
var menu = this.firstChild;
// or
// var menu = this.children[0];
if(menu.style.display == 'block'){
menu.style.display = 'none';
}else {
menu.style.display = 'block';
}
}
<nav>
<div class="dropdown_button" class="menu_button" onClick="show_menu(this)">Schedule 1</div>
<div id="dropdown_menu" class="hidden_menu">
<ul>
<li>option 1</li>
<li>option 2</li>
</ul>
</div>
<div class="dropdown_button" class="menu_button" onClick="show_menu(this)">Schedule 2</div>
<div id="dropdown_menu" class="hidden_menu">
<ul>
<li>option 3</li>
<li>option 4</li>
</ul>
</div>
</nav>
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744958813a4603360.html
评论列表(0条)