javascript - 在 HTML/JS 和 CSS 中显示一个打开弹出窗口的按钮?
问题描述
当您单击“水”按钮下方的“土地”按钮时,我想并排显示 2 个按钮。这两个按钮都应该能够打开我已经包含的代码的弹出窗口。我试图实现按钮代码,但是当我点击“土地”按钮时,一切都消失了。我怎样才能解决这个问题?
这是小提琴:
http://jsfiddle.net/fku50o9v/2/
这是我当前的代码:
function popup(id){
if($("#"+id).hasClass( "vis" )){
$("#"+id).removeClass( "vis" );
}else{
$(".dropdown-content").removeClass( "vis" );
$("#"+id).addClass( "vis" );
}
}
#outer
{
width:100%;
text-align: center;
}
.inner
{
display: inline-block;
padding-right: 20px;
}
.msgBtn2{
cursor: pointer;
font-size: 1.2rem;
height: 2.5rem;
border: none;
border-radius: 10px;
color: blue;
background-color: #ffff;
outline: none;
box-shadow: 0 0.3rem rgba(121,121,121,0.70);
}
.dropdown {
position: relative;
display: inline-block;
width: 100%;
}
.dropdown-content {
min-width: 160px;
top: 50px;
margin-left: 10px;
display: none;
position: absolute;
z-index: 1;
color: red;
}
.dropdown-content button{
color: red;
margin: 5px;
display: block;
}
.vis {
display: block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="outer">
<div class="inner">
<div class="dropdown">
<span><button class="msgBtn2" onclick="popup('water');" >Water</button></span>
<div id="water" class="dropdown-content">
<!--<button type="submit" class="msgBtn2">land</button>!-->
<span><button class="msgBtn2" onclick="popup('land');" >land</button></span>
<div id="land" class="dropdown-content">
<button target="popup"
onclick="window.open('http://google.com/popup','popup','width=600,height=600'); return false;" class="msgBtn2">Workflow</button>
</div>
<button type="submit" class="msgBtn2">river</button>
<button type="submit" class="msgBtn2">ocean</button>
</div>
</div></div>
</div>
解决方案
我相信这应该有效。就像 Svela 提到的那样,您“隐藏”了所有元素,但您单击的元素除外。您需要保持父级可见。这只是一个肮脏的实现,我很确定还有更优雅的方法,但它应该给你一个好主意:D ...我认为..
function popup(id){
let element = $("#"+id);
if(element.hasClass( "vis" )){
element.removeClass( "vis" );
}else{
$(".dropdown-content").removeClass( "vis" );
element.addClass( "vis" );
element.parent(".dropdown-content").addClass( "vis" );
}
}
推荐阅读
- c++ - 渲染为纯黑色的 OpenGL 纹理
- php - var_dump(getRecommendation($matrix,$getName)) 返回 null。检索到的值很好
- java - 将复制的整数值从 Excel 读取到 Java 中的 .txt 文件
- python - 检查Python中单词之间的相似性或同义词
- css - SCSS !default 与 css-modules
- angularjs - 如何纠正以下代码的解析错误
- google-apps-script - 为什么 getProperty 会崩溃?
- r - 如何在 rstan 中使用包中的发行版?
- visualization - turicreate 可视化决策树
- java - Spring Hibernate,GET Query,Hibernate Query 已成功形成,我能够从 DB 获取数据,但是当我从浏览器中点击它时,它会抛出 404