回答
解决方案1:
比方说你的身体中含有这个div:
<a href="#show" id="showPopup">show</a>
<div class="popup">Popup</div>
那么你可以尝试这样的事:
$("#showPopup").click(function(e) {
e.stopPropagation();
$("#popup").fadeIn(200);
});
$(document).on("click", function(e) {
e.stopPropagation();
if (e.target.className != "popup") {
$(".popup").fadeOut(200);
}
});
解决方案2:
在这个解决方案中,我们有一个外部包装器,它将覆盖窗口的所有宽度和高度,因此,当我们想要淡出弹出窗口时,我们只需测试用户是否点击了弹出窗口或包装器。这可以避免在前面的例子中,如果已经在其他事件处理程序中使用了奇怪的行为。
$("#showPopup").on("click", function() {
$("#popup-wrapper").fadeIn(200);
});
$("#popup-wrapper").on("click", function(e) {
if (e.target.id == "popup-wrapper")
$("#popup-wrapper").fadeOut(200);
});
#popup-wrapper {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: transparent;
}
#popup {
width: 200px;
height: 100px;
background: #efefef;
position: relative;
top: 50%;
left: 50%;
margin-left: -100px;
margin-top: -50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="#show" id="showPopup">show</a>
<div id="popup-wrapper">
<div id="popup">Popup</div>
</div>
可悲的是,这对我不起作用 – progNewbie 2014-11-24 02:21:40
因为有一个ID,我将它改为event.target.id。但它不起作用,当淡入我的div,它立即淡出 – progNewbie 2014-11-24 02:50:17
我编辑了答案。你现在有两种解决方案。其中一个与以前几乎相同,而秒则基于包含“popup”元素的“包装器”。 – Dim13i 2014-11-24 11:40:40
- 1. 点击/触摸img fadeToggle div在像素
- 2. UIBarButtonItem点击旁边按下
- 3. 点击fadeToggle jQuery中
- 4. 放大点击它时的图像,可以点击旁边看下图片
- 5. 如何通过点击旁边的单词来选择复选框/收音机?
- 6. 通过点击关闭Bootstrap offcanvas边栏
- 7. Resize Image Div尊重文本div旁边它
- 8. textarea旁边的中心div
- 9. 渲染DIV旁边的href
- 10. 通过点击获取div ID
- 11. 通过点击发送Div id到javascript
- 12. 通过iFrame点击不是从div
- 13. 通过点击div选择收音机
- 14. Overlay Div可以点击通过
- 15. 另一个div位于主div旁边
- 16. 固定div旁边的父div
- 17. Div旁边div没有使用浮动
- 18. CSS在div旁边放置div
- 19. 通过单击DIV
- 20. 否认通过点击它周围
- 21. 如何通过点击它第二次
- 22. 错误通过点击它识别URL
- 23. 通过点击
- 24. 'fadeToggle'通过下拉菜单的多个div标签
- 25. angular2如何让一个div出现旁边单击陆续格
- 26. 在表格行内单击按钮旁边选择div文本
- 27. div浮动到居中div旁边的右边?
- 28. 通过点击隐藏DIV,并通过JavaScript创建另一个DIV?
- 29. Div#1旁边的Div Div#2和Div#3
- 30. div更高的树不接收点击'通过'更低的div
你想让它** **淡出**或** toggleFade点击它外面是什么时候? – Dim13i 2014-11-24 02:07:36
toggleFade,因为我在这之前已经淡入了 – progNewbie 2014-11-24 02:08:24
是的,但是如果它是可见的并且你想让它消失,你可以简单地使用fadeOut。 – Dim13i 2014-11-24 02:10:03