IOS上給body和html綁定click事件的坑


場景: 在ios上(包括iPhone和ipad)

   給window ,html,document,body綁定click事件,點擊不會觸發

   由於ios瀏覽器都用的safari內核,所以ios瀏覽器全部中槍

解決方案:

  • 改用touch事件(如果是彈出層的話,會有點透問題)
  • 如何避免bug觸發:不要委托到body結點上,委托到任意指定父元素都可以,或者使用原生具有該事件的元素,如使用click事件觸發就用a標簽包一層。
  • 已觸發如何修補:safari對事件的解析非常特殊,如果一個事件曾經被響應過,則會一直冒泡(捕獲)到根結點,所以對於已大規模觸發的情況,只需要在body元素的所有子元素綁定一個空事件就好了,如: (“body > *”).on(“click”, function(){};)


免責聲明!

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



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