单击嵌套在Button中的Element的事件

Noe*_*ams 13 html javascript

这是一个简单的问题示例:

<body>
  <button id="parent"  onclick="alert('parent')">
      <span id="child" onclick="alert('child')">Authenticate</span>
  </button>
</body>
Run Code Online (Sandbox Code Playgroud)

在Chrome中,这会提醒"孩子"然后"父母",但在IE/FF中我们只会获得"父母".

很明显,这可以通过多种方式修复(将按钮更改为div,删除跨度等),但我想知道是否有办法使这项工作(即提醒"孩子")而不更改HTML.

谢谢!

PS:尝试过JQuery并且具有相同的行为.

Ant*_*bes 2

正如 @muistooshort 所说,在其他单击事件中处理单击事件似乎不自然。我还认为你必须重新考虑你的设计。

话虽这么说,您可以在主容器上处理单个单击事件,然后检查哪个元素是单击的来源

考虑到您的用例,这将是要走的路,我认为:

$('your-button-container').click(function(event){
    console.log(event.originalEvent.srcElement);
});
Run Code Online (Sandbox Code Playgroud)

进行必要的检查event.originalEvent.srcElement并采取相应的行动。

编辑: 不使用 JQuery,它会像这样:

yourButtonContainer.addEventListener(function(event){
    console.log(event.srcElement);
});
Run Code Online (Sandbox Code Playgroud)