Почему мне нужно дважды щелкнуть мой тег «a», чтобы запустить событие onclick? Моя цель: при нажатии тега «a» отображать как блок расположенный ниже div, который по умолчанию скрыт.
function myFunction1(num) {
var x = document.getElementById("description");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";;
}
}
function myFunction2(num) {
var x = document.getElementById("benefits");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";;
return
}
}
function myFunction(button) {
var x = button.id;
switch (x) {
case '1':
myFunction1(x);
break;
case '2':
myFunction4(x);
break;
default:
return false;
}
}
var buttons = document.getElementsByTagName('a');
for (var i = 0, len = buttons.length; i < len; i++) {
buttons[i].onclick = function() {
myFunction(this);
}
};
<header class="container">
<nav class="navbar">
<a id="1">Description</a>
<a id="2">Benefits</a>
</nav>
</header>
<div class="details">
<div class="details_object" id="description" style="display: none">
<p> <span></span> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Illo, dolorem. </p>
<p> <span></span> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Illo, dolorem. </p>
</div>
<div class="details_object" id="benefits" style="display: none">
<p> <span></span> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Illo, dolorem. </p>
<p> <span></span> Lorem ipsum dolor sit, amet consectetur adipisicing elit. Illo, dolorem. </p>
</div>
</div>
Я также стараюсь отображать только один .details_object за раз, поэтому, если один отображается, но вызывается другая функция, установите первый по умолчанию.