禁用父元素的 onclick 事件

Lio*_*ior 2 javascript

假设我有一个带有 onclick 事件的元素,其中有另一个元素,如何禁用子元素的 onclick?

例子:
<h3 onclick="do something"><input type="checkbox" name="child" /> text</h3>

当您选中复选框时,不应触发 onclick 事件。

谢谢。

Abi*_*usX 7

Javascript 事件自下而上传播,即如果你点击一个按钮,所有的上级都会以有序的方式接收 onclick 事件,除非其中一个通过 stopPropagation 拦截它(或返回 true,这意味着我处理了这个)

例子 :

<h3 onclick="do something"><input type="checkbox" name="child" onclick="return false;" /> text</h3>
Run Code Online (Sandbox Code Playgroud)

您还可以将父级的 onclick 绑定到一个函数:

function onlick_handler(e)
{
   e.stopPropagation(); //this event would propagate to parents of this object which are clicked as well
   // the rest here
}
Run Code Online (Sandbox Code Playgroud)