当前位置: 首页 > 知识库问答 >
问题:

阻止Javascript事件影响子元素

漆雕嘉茂
2023-03-14

我有一个创建元素的脚本,创建过程的一部分是添加onclick事件(使用addEventListener),但当我单击子元素时,会触发父元素的onclick事件。当源是子元素时,如何防止检测到单击?

共有3个答案

齐晟
2023-03-14

父单击处理程序:(检查单击元素的id)

function handler(e){
  if(e.target.id != "parentID") return;
  ....
}
钱元徽
2023-03-14

问题是事件正在向父级冒泡。

在子级的onclick事件中,告诉事件停止传播:

onclick = function (event) {
    // ...
    event.stopPropagation();
};
尚河
2023-03-14

使用event.stopPropagation()。这将停止Javascript事件的冒泡,并且只允许应用于目标元素的事件执行;

window.addEventListener("click", function(event){

    // event here

    event.stopPropagation();
}, false);
 类似资料:
  • 子元素有click事件,父元素有dbclick事件,想要做到快速双击子元素的时候,不要触发父元素的dbclick事件 尝试了给子元素添加阻止冒泡、return false等操作,均无效

  • 我有一个带有复杂场景的javafx8应用程序。它由一个拆分窗格组成,在顶部部分,我有一个具有多个级别(子级)的堆栈窗格。最后面的是一个背景,在调整大小时只需要重新绘制,另一个是网格线,lat/long。另一个用于绘图,最后一个用于滑动复合控件。当复合材料(按钮、标签、组合框和文本字段,在stackframe的最后一个子项中,它正确地截取并处理鼠标和键盘事件。但是,当它位于顶部时,没有任何事件传播到

  • 本文向大家介绍JavaScript阻止事件冒泡示例分享,包括了JavaScript阻止事件冒泡示例分享的使用技巧和注意事项,需要的朋友参考一下 之前遇到事件冒泡的问题,也去网上搜索了一番,结果大部分都是一样的代码,贴来用时也不太顺利。涉及到FF时,可以用 e.stopPropagation(); ,不知怎地我没用成功。不过我发现FF支持e.cancelBubble = true;的写法,经测试可行

  • div元素无法选择,受body的onselectstart影响。 实际上并不知道是哪个父元素。 用js如何移除这个事件?

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

  • 本文向大家介绍JavaScript 事件对内存和性能的影响,包括了JavaScript 事件对内存和性能的影响的使用技巧和注意事项,需要的朋友参考一下 虽说事件处理程序可以为现代 Web 页面添加很强的交互能力,但是不分青红皂白就添加大量的事件处理程序绝对是一种愚蠢的行为。 我们来分析一下:事件处理程序本质上是一种函数,是一种对象,存放在内存中,设置大量的事件处理程序会使内存中的对象变多,Web