天天看點

Android安卓4.0以下,fastclick觸發兩次?

前幾天寫了個防穿透的模态框。 Modal模态框的防穿透問題,模态框彈出後,禁止body滑動事件

但是今天上線前測試,用Android4.0以下的手機測試時,點選模态框的時候還是出現了穿透,好比

b

是模态框上的按鈕,

a

是下層頁面的按鈕。當點選

b

的時候,

a

被觸發了。同僚說這種問題不用改了,可能覺得身邊使用的人少了,沒那個必要了,我還是在網上搜了下解決辦法,找到了,雖然說很粗暴,但我測了下,的确解決了。很好~~~

是這樣的,我在插件中加了

<div class="preventClick"></div>
           

也就是 彈窗出現的時候,這個彈層也出現,是下面這種結構

Android安卓4.0以下,fastclick觸發兩次?
.preventClick { 
    width:%; 
    height:%; 
    position:absolute; 
    z-index:;
    top:; 
    left:;
    display:none;
}
           

在生成彈窗前,讓

preventClick

顯示出來。

function onDeviceReady() { // 安卓4.2下fastclick觸發兩次
    setTimeout(function(){ $('.preventClick').hide(); }, );
}
           
$('.preventClick').show();  // 安卓4.0防穿透遮罩層

PopHelper.pop({
    title : "溫馨提示",
    content : str,
    confirmBtn : "知道了",
    callbacks : [ function() {
            hideLoading();
            var data = $(e.target).data("str");
            order(data);
        },function(){
            hideLoading();
            onDeviceReady(); // 300ms後隐藏遮罩層
            $(".rf-dialog").remove(); //在插件函數裡,其實是有這句的,但是IOS10.3.2卻有問題,是以在這裡再添加上
    } ]
});
           

經過測試,沒有穿透點選了,實作了。

學習于 《 Fastclick 導緻click事件觸發兩次的問題 》