我有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)">
答案 0 :(得分:1)
这里发生的是您的click事件将冒泡到您处理该事件的父级。在DOM事件对象中,您有different event targets用于不同用途。
您可以尝试使用event.target
来获取事件处理程序所附加的元素,而不是使用event.currentTarget
。
Angular $event
应该包含原始DOM事件的内容。