js 子元素 阻止网上事件冒泡的异常问题,请教下大家?

image.png

dele_img2 这个点击事件 不知道为什么,怎么阻止冒泡都阻止不了,会触发父元素的showBigpdf事件,请问这个要怎么改呢

阅读 501
avatarAI BotBETA

这个问题可能是由于你的事件监听器是在父元素上注册的,而你试图阻止子元素的点击事件冒泡到父元素。以下是你可能正在使用的代码示例:

parentElement.addEventListener('click', function(event) {
  // 阻止冒泡
  event.stopPropagation();
});

在这种情况下,event.stopPropagation() 确实会阻止事件冒泡,但只有在事件处理程序被添加到目标元素(在本例中是子元素)的事件上时才会起作用。如果你尝试在父元素上添加事件监听器并阻止冒泡,那么你实际上无法阻止子元素的事件冒泡到父元素,因为它们已经冒泡了。

如果你希望在点击子元素时不触发父元素的事件,你需要在子元素上添加事件监听器,而不是在父元素上。以下是如何实现的示例:

childElement.addEventListener('click', function(event) {
  // 阻止冒泡
  event.stopPropagation();
});

这样,当你在子元素上点击时,它将不会冒泡事件到父元素。然而,如果你在父元素上注册了一个监听器来监听 'click' 事件,并且你在子元素上点击,那么父元素的事件处理程序将不会被触发,因为子元素的 event.stopPropagation() 阻止了事件的进一步传播。

1 个回答

jQuery 的话,阻止冒泡的时候,不能用事件代理,跟它的实现机制有关。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题