防止身体点击某些dom元素

pan*_*hro 1 javascript

我的身体上有一个点击监听器:

document.body.addEventListener('click', function(e){

});
Run Code Online (Sandbox Code Playgroud)

它就在那里当用户点击我的网站主体或任何其他元素时,任何打开的弹出窗口都会关闭.

但我想阻止弹出窗口(除了X按钮)点击触发事件.

我怎样才能做到这一点?

Nik*_*xDa 5

您需要防止事件冒泡.为此,请使用event.stopPropagation (),这将停止将click事件传播到DOM中的元素(例如正文).

所以在你的情况下,它会是这样的:

document.body.addEventListener('click', function(e){
    // Close modal
});

specificOtherElement.addEventListener('click', function(e){
    e.stopPropagation ();
    // Do other stuff eventually
});
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation.