Javascript angular2中$event.target有时获取的是当前元素的子元素,这种问题该怎么避免呢

比如我把click事件绑定到li上但是$event有的时候会是img,这种问题该怎么避免呢<li*ngFor="letitemofcompanies"(click)="s... 比如 我把click事件绑定到 li 上 但是$event有的时候会是img,这种问题该怎么避免呢
<li *ngFor="let item of companies" (click)="selectCompanies($event);">
<img [src]="'assets/resource/icon_'+item.insCode.toLocaleLowerCase()+'.png'">
</li>
展开
 我来答
网海1书生
科技发烧友

2019-06-20 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
这就是事件冒泡,当一个元素触发事件后,会逐层上报给父元素、祖父元素……乃至document,也就是说这些元素都会同时触发事件。这种情况下,event.target就是指最初触发事件的那个子元素(就比如你题目中的img),而event.currentTarget才是被冒泡后触发事件的当前元素(比如li)。这也就意味着,当你点击li时,如果点到的是子元素img,则event.target就是img,而event.currentTarget则是li,而当你点到的是li里面除img之外的其他部分时,event.target和event.currentTarget都是li
所以,现在你知道该怎么做啦?就是不要使用event.target,改用event.currentTarget
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式