【发布时间】:2015-03-10 08:38:00
【问题描述】:
我正在制作自己的灯箱。
我有一个半透明的 div,它固定在整个屏幕上,在里面我的灯箱以我的内容为中心。一个div中的一个div。
我对 jQ 不是很好,所以我不知道如何确保单击事件(关闭带有暗色 div 和灯箱的容器)仅在单击暗色区域时触发,而不是在我单击某些内容时触发灯箱。
本质上:如果单击半透明区域,则关闭弹出和半透明区域,但如果我单击中间灯箱则不会。
这是我目前得到的: (灯箱居中,如https://stackoverflow.com/a/8620628/891052)
$(document).ready( function() {
$("#openpopup").click(function() {
$('#closepopup').toggle();
});
$("#closepopup").click(function() {
$('#closepopup').toggle();
});
});
html, body {height:100%;}
#closepopup {
background:rgba(0,0,0,.5);
position:fixed;
top:0;
left:0;
THIS_CENTERS_CONTENT:;
width:100%;
height:100%;
vertical-align: middle;
text-align:center;
}
.fullheight {
THIS_CENTERS_CONTENT:;
height:100%;
vertical-align: middle;
display: inline-block;
}
#popupbox {
background:#ebebeb;
border-radius:15px;
text-align:left;
height:auto;
THIS_CENTERS_CONTENT:;
max-width:90%;
vertical-align: middle;
display: inline-block;
}
#popupboxinner {
THIS_KEEPS_CONTENT_PLACED:;
max-width:800px; SAME_AS_MAX_IMG_WIDTH:;
padding:20px 30px;
min-width:200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div id="closepopup">
<span class="fullheight"></span>
<div id="popupbox">
<div id="popupboxinner">
LIGHTBOX CONTENT - SHOULD NOT CLOSE IF CLICKED
</div>
</div>
</div>
<span id="openpopup">OPEN CLICKABLE SEMI TRANSPARENT WRAPPER WITH LIGHTBOX INSIDE</span>
【问题讨论】:
-
可能重复:stackoverflow.com/questions/9237516/… 但这有你的答案:在透明 div 上放置一个点击处理程序 :)
-
我就是这么做的。我在半透明 div 上放置了一个点击处理程序,但是当我点击其中的灯箱区域 div 时,它也会被触发,这是我不想要的。