Javascript 防止在某些dom元素上单击正文
我身体上有一个点击监听器:Javascript 防止在某些dom元素上单击正文,javascript,Javascript,我身体上有一个点击监听器: document.body.addEventListener('click', function(e){ }); 它就在那里,所以当用户单击我的站点的主体或任何其他元素时,任何打开的弹出窗口都会关闭 但我想防止点击弹出窗口(X按钮除外)触发事件 如何执行此操作?您需要防止事件冒泡。为此,请使用event.stopPropagation(),这将停止将单击事件传播到DOM中更高的元素(例如主体) 因此,在您的情况下,它将类似于: document.body.addE
document.body.addEventListener('click', function(e){
});
它就在那里,所以当用户单击我的站点的主体或任何其他元素时,任何打开的弹出窗口都会关闭
但我想防止点击弹出窗口(X按钮除外)触发事件
如何执行此操作?您需要防止事件冒泡。为此,请使用
event.stopPropagation()
,这将停止将单击事件传播到DOM中更高的元素(例如主体)
因此,在您的情况下,它将类似于:
document.body.addEventListener('click', function(e){
// Close modal
});
specificOtherElement.addEventListener('click', function(e){
e.stopPropagation ();
// Do other stuff eventually
});
有关更多详细信息,请参阅。您需要防止事件冒泡。为此,请使用
event.stopPropagation()
,这将停止将单击事件传播到DOM中更高的元素(例如主体)
因此,在您的情况下,它将类似于:
document.body.addEventListener('click', function(e){
// Close modal
});
specificOtherElement.addEventListener('click', function(e){
e.stopPropagation ();
// Do other stuff eventually
});
有关更多详细信息,请参阅。检查
e.target
它为您提供了生成单击事件的元素。如果是弹出元素,则不执行任何操作检查e.target
它为您提供了生成click事件的元素。如果是弹出元素,则不执行任何操作