遮罩层,tap点透事件

tap和click的区别:

两者都会在点击时触发,但是在web手机端,clikc会有200-300ms的延时,所以要用tap代替click作为点击事件,singleTap和doubleTap分别作为单次点击和双击,但是使用tap会带来点透事件(事件穿透)

tap事件穿透:

执行完上层当A/B两个层上下Z轴叠层,上层的A点击后消失或者移开(原因接下来会讲),当B元素本身默认有click事件或者绑定click事件,这种情况下,点击A/B重叠的部分,就会出现点透事件绑定的tap事件后,下层如果绑定这click事件或者本身就存在点击事件(a/input)也会默认触发,这就是tap点透事件

也就是说在移动端的事件触发从早到晚排序:touchstart  touchstop click 。 所以click的触发是有延时的,about 300ms

解决方法:

1

$(function(){
 
    newFastClick(document.body);
 
})

2.

$A.on('touchend',function(e){//而touchend是原生的事件,在dom本身上就会被捕获触发
 
    $demo.hide()
    e.preventDefault();
 
})

猜你喜欢

转载自blog.csdn.net/weixin_39581226/article/details/81568679
今日推荐