遮罩層,tap點透事件
阿新 • • 發佈:2018-11-19
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();
})