如何听父母点击JS?

时间:2018-12-05 11:43:44

标签: typescript event-handling

我有HTML结构:

<div class="parent">
   <div class="child_1"><div class="child_1_1"></div></div>
   <div class="child_2"></div>
</div>

因此,当我单击父元素时,我会调用函数:

 public openAccordion(event: any): void {
    if (event.target.className == "parent") {
       // TODO
    }
  }

要执行功能,我通过了event并检查它是否包含特定的类:className

但是当我按子元素单击时,此条件不起作用,因此,如何总是获取父容器并检查其类?

我这样分配:

<div(click)="openAccordion($event)">

1 个答案:

答案 0 :(得分:1)

这里发生的是您的click事件将冒泡到您处理该事件的父级。在DOM事件对象中,您有different event targets用于不同用途。

您可以尝试使用event.target来获取事件处理程序所附加的元素,而不是使用event.currentTarget

Angular $event应该包含原始DOM事件的内容。