如何避免closeWindow()
调用#window
?#window-overlay
当单击屏幕上的任意位置时,当前会与所有嵌套的子项一起删除。但我只想在点击#window-overlay
而不是点击时这样做#window
。所以#window
可以有自己的点击事件。我绝对是 JS 的菜鸟。只是尝试在不使用display:block
等的情况下做模态类的东西......想法很简单,无论如何,我的窗口总是会在其他所有内容之上,因为它被附加到document.body
并且我不需要太关心 z-index碰撞和其他东西。同样,cloneNode 的性能也非常好。我知道,我的函数不可重用,但我稍后会处理这个问题。可能我需要处理e.stopPropagation()
但不确定如何实现这一点。
<template id="my-test">
<div id="window-overlay" class="my-test" onclick="closeWindow()">
<div id="window" class="window">
<p>My Window</p>
</div>
</div>
</template>
function openProfile() {
var myTest = document.querySelector('#my-test').content;
document.body.appendChild(myTest.cloneNode(true));
}
function closeWindow() {
var wo = document.querySelector('#window-overlay');
var root = document.body
root.removeChild(wo);
}