1. 程式人生 > >遮罩層,tap點透事件

遮罩層,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();
 
})