javascript - 双击显示/隐藏多个 div 双击不起作用
问题描述
在这里,我想打开/关闭 div,它工作正常。但是当我双击同一个按钮时,div 消失了,它应该在点击时可见。任何人都可以向我建议正确的方向。
var divs = ["Div1", "Div2"];
var visibleDivId = null;
function divVisibility(divId) {
if (visibleDivId === divId) {
visibleDivId = null;
} else {
visibleDivId = divId;
}
hideNonVisibleDivs();
}
function hideNonVisibleDivs() {
var i, divId, div;
for (i = 0; i < divs.length; i++) {
divId = divs[i];
div = document.getElementById(divId);
if (visibleDivId === divId) {
div.style.display = "block";
} else {
div.style.display = "none";
}
}
}
.buttons a {
font-size: 16px;
}
.buttons a:hover {
cursor: pointer;
font-size: 16px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<div class="main_div">
<div class="buttons">
<a href="#" onclick="divVisibility('Div1');">On</a> |
<a href="#" onclick="divVisibility('Div2');">Off</a> |
</div>
<div class="inner_div">
<div id="Div1">I'm Div One</div>
<div id="Div2" style="display: none;">I'm Div Two</div>
</div>
</div>
解决方案
请将hideNonVisibleDivs();
方法移到其他部分
var divs = ["Div1", "Div2"];
var visibleDivId = null;
function divVisibility(divId) {
if (visibleDivId === divId) {
visibleDivId = null;
} else {
visibleDivId = divId;
hideNonVisibleDivs();
}
}
function hideNonVisibleDivs() {
var i, divId, div;
for (i = 0; i < divs.length; i++) {
divId = divs[i];
div = document.getElementById(divId);
if (visibleDivId === divId) {
div.style.display = "block";
} else {
div.style.display = "none";
}
}
}
.buttons a {
font-size: 16px;
}
.buttons a:hover {
cursor: pointer;
font-size: 16px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<div class="main_div">
<div class="buttons">
<a href="#" onclick="divVisibility('Div1');">On</a> |
<a href="#" onclick="divVisibility('Div2');">Off</a> |
</div>
<div class="inner_div">
<div id="Div1">I'm Div One</div>
<div id="Div2" style="display: none;">I'm Div Two</div>
</div>
</div>
推荐阅读
- html - 如何在 div 中水平居中 2 个按钮?
- c# - 如何为 Dialogflow 集成验证 Google 凭据
- amazon-web-services - Amazon MQ - 无服务器和容器中客户端的连接池
- python - 将 utf-8 xml 保存到文件不会显示在浏览器中
- r - dplyr 和日期的意外行为
- windows - Windows 中的 Qt 应用程序部署问题
- javascript - 检测 audio.play() 何时完成
- c# - C# 应用程序打印 Excel - NPOI 打印设置以在 excel 中设置为合法的分页器大小
- scala - 在 scala 中,当插入到仅强制执行某些特征的通用函数中时,如何强制编码器对类型进行操作?
- php - 如何将 php 用户会话应用于随机报价片段?