Javascript 单击重叠项目上的事件

Javascript 单击重叠项目上的事件,javascript,jquery,events,onclick,buttonclick,Javascript,Jquery,Events,Onclick,Buttonclick,我有 具有单击事件的表行 按钮,该按钮位于表行上 我有个问题。当我点击按钮时,行单击事件也会执行,但我不希望出现这种行为。我只需要按钮单击执行,不需要行单击。查看代码这是在按钮单击事件中应该执行的操作 使用jQuery(由于问号): 您可以在单击时调用额外的函数 这就是功能: 巴顿的单键你可以这样写 onclick="yourfunctionname();cancelBubble(event)" yourfunctionname::是您正在调用的函数的名称。另外 我有一个覆盖在可点击元素上

我有

  • 具有单击事件的表行
  • 按钮,该按钮位于表行上

我有个问题。当我点击按钮时,行单击事件也会执行,但我不希望出现这种行为。我只需要按钮单击执行,不需要行单击。

查看代码这是在按钮单击事件中应该执行的操作

使用jQuery(由于问号):


您可以在单击时调用额外的函数

这就是功能: 巴顿的单键你可以这样写

onclick="yourfunctionname();cancelBubble(event)"
yourfunctionname::是您正在调用的函数的名称。

另外 我有一个覆盖在可点击元素上的下拉列表。因此,对于所有现代浏览器,只需使用以下方法来防止传播到底层元素

onclick="yourfunctiontohandle();event.stopPropagation();"
对于较旧的跨浏览器解决方案,必须使用IE event.cancelBubble

onclick="if(event.stopPropagation) event.stopPropagation(); else event.cancelBubble=true;"

由于不推荐使用全局事件,如果有人想使用纯javascript,这里是停止传播的方法

document.querySelector(“#outer”).addEventListener('click',e=>{console.log('outer div clicked'));
document.querySelector(“#internal”).addEventListener('click',e=>{console.log('internal div clicked');e.stopPropagation()

onclick="yourfunctiontohandle();event.stopPropagation();"
onclick="if(event.stopPropagation) event.stopPropagation(); else event.cancelBubble=true;"