给父元素添加点击事件时,获取到的 event.target 为子元素(point-events: none 的妙用)

目录

场景

分析

解决


场景

使用 ion-select 组件时,点击下拉图标

点击事件的 event.target,不是图标本身的 DOM,而是图标子元素的 DOM

这会导致 popover 无法计算出实际点击位置

分析

将上面的场景进行抽象处理:

给外层的 div.box 添加点击监听事件时,获取的 $event.target(当前被点击的对象) 不是 div.box,而是 div.selected 或者 div.icon

<div class="box" (click)="presentPopover($event)">
    <div class="selected"></div>
    <div class="icon"></div>
</div>

解决

给子节点设置样式 point-events: none

让子节点发生事件穿透,避免成为事件的 target

.selected, 
.icon {
   pointer-events: none; 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lyrelion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值