У меня проблемы с JavaScript, связанные с включением и выключением видимости между div.
У меня есть две колонки; Слева находится меню, а справа - пространство, в котором я хотел бы отображать различные элементы. Мое намерение таково:
Когда вы нажимаете на элемент меню, соответствующий div появляется справа.
(то есть дисплей: блок)
При повторном нажатии на тот же пункт меню,
соответствующий div закрывается (то есть отображается: нет)
При нажатии на меню
пункт, соответствующий div открывается, И все остальные открытые div закрываются.
У меня это работает почти так, как я хочу, хотя текущая проблема заключается в том, что для открытия div нужно щелкнуть дважды. Кроме того, так как я новичок в javascript, я представляю, что мой код НАМНОГО более громоздок, чем должен быть. Я просмотрел похожие примеры, но не могу найти ответ. Любая помощь будет высоко ценится!
function switchVisible() {
if (document.getElementById('hidden1')) {
if (document.getElementById('hidden1').style.display == 'none') {
document.getElementById('hidden1').style.display = 'block';
document.getElementById('hidden2').style.display = 'none';
document.getElementById('hidden3').style.display = 'none';
}
else {
document.getElementById('hidden1').style.display = 'none';
}
}
}
function switchVisible2() {
if (document.getElementById('hidden2')) {
if (document.getElementById('hidden2').style.display == 'none') {
document.getElementById('hidden2').style.display = 'block';
document.getElementById('hidden1').style.display = 'none';
document.getElementById('hidden3').style.display = 'none';
}
else {
document.getElementById('hidden2').style.display = 'none';
}
}
}
function switchVisible3() {
if (document.getElementById('hidden3')) {
if (document.getElementById('hidden3').style.display == 'none') {
document.getElementById('hidden3').style.display = 'block';
document.getElementById('hidden1').style.display = 'none';
document.getElementById('hidden2').style.display = 'none';
}
else {
document.getElementById('hidden3').style.display = 'none';
}
}
}
<div class="leftcolumn">
<div class="leftmenu">
<div class="subheader" onclick="switchVisible()">Content 1</div>
<div class="subheader" onclick="switchVisible2()">Content 2</div>
<div class="subheader" onclick="switchVisible3()">Content 3</div>
</div>
</div>
<div class="rightcolumn">
<div id="hidden1">
Content 1
</div>
<div id="hidden2">
Content 2
</div>
<div id="hidden3">
Content 3
</div>
</div>