document.onclick在ios上不觸發的解決方法與touchstart點擊穿透處理


document.onclick = function (e) {
    var e = e ? e : window.event;
    var tar = e.srcElement || e.target;
    if (tar.id != "searchData") {
        pagesZone.style.display = "none";
    }
}

  以上代碼在電腦瀏覽器和安卓上都能觸發alert事件,但是在iOS上卻完全沒有反應。
  如果這個name標簽是button的可click事件則是可以觸發的,因為div本身默認不可點擊 。
1、有一個解決方法是給這個元素添加css 

.name{ 
  curser:pointer; 
} 

2、還可以將click改為touchstart事件,或者共存 

$(document).on(“click touchstart”, “.name”, function() { 
  alert(“name”); 
});

  不過touch系列事件有點擊穿透問題,解決方案如下:

  把頁面內所有click全部換成touch事件( touchstart 、’touchend’、’tap’), 需要特別注意 a標簽,a標簽的href也是click,需要去掉換成js控制的跳轉,或者直接改成span + tap控制跳轉。如果要求不高,不在乎滑走或者滑進來觸發事件的話,span + touchend就可以了,畢竟tap需要引入第三方庫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM