vue事件委托传递节点防止向下传递穿透

例如:

<li @click="popSelect($event)">
				<span>Bank Country</span>
				<input type="text" placeholder="Select bank country" v-model="model.bank_country" name="bank_country" readonly />
				<van-icon name="arrow-down"></van-icon>
				<em>Country is required</em>
			</li>

li上绑定popSelect($event)方法

popSelect: function (e) {
	var ele = e.target;
	console.log(ele.localName);
	if(ele.localName == 'li'){}
}

点击li时会穿透到子集,span、input等标签,这时你拿到的e.target就不确定是哪个节点,但是你又需要操作的只是li,用@click.stop等等都没用,因为这是防止向上冒泡,这是可以利用css。例如:

.enter-account ul li span {
	pointer-events:none;
}

在你不想点到的节点上添加pointer-events:none;这行css,就取消了它的点击事件,这时你无论点li的任何地方,获取到的e.target都是li节点。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值