【发布时间】:2019-08-31 07:50:11
【问题描述】:
我的 JavaScript 在打开和关闭 div 之间的可见性时遇到问题。
我有两列;左边是一个菜单,右边是我想显示不同 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>
【问题讨论】:
标签: javascript css onclick toggle visibility