当孩子被点击时触发父点击事件

Ali*_*ani 2 html javascript jquery events

我不熟悉 javaScript 和 jQuery。当您单击其子元素时,如何调用父元素的单击事件?我的代码中有这个结构:

<ul id="pc5">
   <li><a href="#">book</a>
   </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

$("a").click(ul.click);
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

编辑:在我的 ul 点击功能中,我需要 ul id 属性。像这样:

 ul.click(function(e){alert(e.target.id);
Run Code Online (Sandbox Code Playgroud)

所以当链接被点击时, event.target 不是 ul 元素。

Nas*_*sta 5

如果您的子元素位于您的父元素内,您也可以只添加此 CSS 属性。

.child {
   pointer-events: none
}
Run Code Online (Sandbox Code Playgroud)

这样点击就直接触发了父级的点击事件监听器。

这个功能的支持是相当不错的


Ale*_*lex 3

当子元素被点击时,不需要触发元素点击事件,如果不停止传播bubbles,点击事件会沿着dom树向上传播。

在这里你可以看到它的工作原理:jsfiddle只需单击蓝色跨度,单击事件就会冒泡到 ul :)

更新的问题

如果你想要 ul 的 id,只需:

$('ul li a').click(function() {
  var id = $(this).closest('ul').attr('id');
});
Run Code Online (Sandbox Code Playgroud)

这样会更容易:

$('ul').click(function() {
   var id = $(this).attr('id');
   alert(id);
});
Run Code Online (Sandbox Code Playgroud)

工作小提琴

如果你点击一个,这应该会起作用,因为它会冒泡