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