错误记录-mui的对话框多次弹出(tap和click)

今天加mui的确认框,发现即便在里面放很少的代码,也会多次触发事件,确认框依旧会弹出两次,然后就是疯狂的查,最后发现是触发点击事件的方式不对,上码

//这个就是我常用的点击事件触发,在里面加上mui.confirm
$("body").on("tap", "#conserve", function() {
console.log(JSON.stringify(e));
});
//这个是正确的
$("body").on("click", "#conserve", function() {
console.log(JSON.stringify(e));
});

看出不同了没,就是触发方式,应该用click。
click和tap有什么不同呢
click与tap都会出发点击事件,但是在手机web端,click会有200-300ms延迟,所以一般用tap(轻击)代替click作为点击事件。
但是,注意了,tap有可能出现点透事件(mui弹框两次出现可能与此有关),点透事件的实质就是多层,而绑定了tap事件的那层,在事件触发之后这个元素就会display: none,而在z轴上有多个容器,点透,很形象吧。有兴趣的可以去研究一下
解决方案: (1)使用fastclick。 (2)添加一个延迟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值