2017-10-12 91 views
1

我有我的身体点击收听:防止身体点击某些DOM元素

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

}); 

它的存在,所以当用户单击我的网站或任何其他元素的身体,任何打开弹出窗口被关闭。

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

我该怎么做?

+1

检查它为您提供单击事件生成的元素的“e.target”。如果它的弹出式元素,什么都不做 – abhishekkannojia

回答

5

您需要防止事件冒泡。为此,请使用event.stopPropagation(),该选项将停止将点击事件传播到DOM中的元素(例如主体)。

所以你的情况,这将是这样的:

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

specificOtherElement.addEventListener('click', function(e){ 
    e.stopPropagation(); 
    // Do other stuff eventually 
}); 

进一步详情,请参阅https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation

相关问题