iPhone safari中Document事件不觸發的解決方案 [冒泡]


寫了一個下拉菜單,在單擊空白地方的時候隱藏。

第一時間就是用$(document).click(function(){   //隱藏代碼  });

各大瀏覽器都沒問題,唯獨iPhone上的不會觸發事件。

后來排查了一遍原因發現,Safari中是這樣處理事件冒泡的:

1.點擊某個DIV或其他元素。

2.發現沒有處理該事件,繼續往上冒泡。

3.直到冒泡到body下面的子節點為止,還是沒有人處理該事件的話,就把該事件丟棄掉。不再往上冒泡。

4.只要在這一條冒泡鏈當中,有一個節點處理了該事件,它就不會丟棄該事件,會繼續往上冒,冒到body 然后document 然后window .

問題發現了,就是必須要有一個人處理這個事件,才會繼續往上冒。

那么解決辦法就是在body的下級,寫個空函數接收一下事件。就行了。

$("body").children().click(function () {

      //這里不要寫任何代碼

});

完美解決!


免責聲明!

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



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