typescript - 如何监听父点击 JS?
问题描述
我有 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)">
解决方案
这里发生的是您的点击事件将冒泡到您处理事件的父级。在 DOM 事件对象中,您有不同的事件目标用于不同的用途。
event.target
您可以尝试使用event.currentTarget
来获取事件处理程序附加到的元素,而不是使用。
Angular$event
应该携带原始 DOM 事件的内容。
推荐阅读
- angular - onSelectionChange 角度,模板侧检查
- reactjs - 尽管 CSS 中存在错误,如何构建 React 应用程序
- sql - 在 oracle sql 中透视时出现无效标识符错误
- laravel - Laravel HasMany 与 where 条件
- java - 格式化 ZonedDateTime 并返回 ZonedDateTime
- python - 如何获取熊猫数据框中每个日期的最大值
- python - 合并连续和重叠的日期范围
- python - 如何使用 python 代码在 Kivy 中切换屏幕
- python - 如何使用硒自动切换页面?
- jquery - isread 的按钮或快捷方式:OWA 中的否?