Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止在某些dom元素上单击正文_Javascript - Fatal编程技术网

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事件的元素。如果是弹出元素,则不执行任何操作