【发布时间】:2020-04-15 20:16:07
【问题描述】:
我有一个 Angular 组件,它的 <ul> 元素包含 <li> 元素。我有以下代码:
@HostListener('document:mousedown', ['$event'])
onMouseDown(event: MouseEvent): void {
func();
}
我希望func() 在我点击屏幕上的任意位置时执行除了 某些<li> 元素应用了disabled 类。我希望event.target 会返回我点击的<li>,这样我就可以做类似的事情
if (!event.target.disabled) {
func()
}
问题是event.target 返回<ul> 而不是<li>。这是我的模板:
<div>
<ul>
<ng-container>
<ng-template>
<li>
<li class="disabled">
<li>
</ng-template>
</ng-container>
</ul>
</div>
此模板无法更改,因为它是其他人代码的一部分。
有谁知道如何解决这个问题?
【问题讨论】:
-
你能分享你的组件模板吗?看到这将有助于回答
-
@SergeyRudenko 我已经更新了我的帖子。
-
哦,好的,我知道问题是 li 元素在 shadow dom 内部?
-
我对 shadow dom 了解不多 :)
-
你能提供更多细节吗????????
标签: javascript html css angular