我试图通过仅单击外部主体来关闭覆盖窗口。问题是,即使我点击覆盖面板本身,如果我点击我放入其中的任何其他元素(div、按钮、图标等…),覆盖也会关闭,我不知道如何只定位叠加层周围的主体,而不是叠加层窗口本身。你能帮忙吗?
这是 html 标记和相关的 JS。
<div id="main">
<div class"other-content">
<!-- other content -->
</div>
<!-- The Modal -->
<div id="myModal" class="modal">
<!-- Modal content -->
<div class="modal__content">
<!-- some content - divs, buttons etc etc -->
</div>
</div>
</div>
$(document).on('click',"#myModal", function(e) {
$('#myModal').fadeOut();
});
原文由 Beppe 发布,翻译遵循 CC BY-SA 4.0 许可协议
在
<body>
上使用点击事件,使用event.currentTarget
检查元素。$currEl.is('#myModal')
检查当前点击的元素是否为myModal
$currEl.closest('#myModal').length
检查当前元素是否在myModal