码迷,mamicode.com
首页 > 其他好文 > 详细

iPhone safari中Document事件不触发的解决方案 [冒泡]

时间:2014-09-24 18:44:27      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:io   ar   div   sp   问题   cti   on   c   代码   

写了一个下拉菜单,在单击空白地方的时候隐藏。

第一时间就是用$(document).click(function(){   //隐藏代码  });

各大浏览器都没问题,唯独iPhone上的不会触发事件。

后来排查了一遍原因发现,Safari中是这样处理事件冒泡的:

1.点击某个DIV或其他元素。

2.发现没有处理该事件,继续往上冒泡。

3.直到冒泡到body下面的子节点为止,还是没有人处理该事件的话,就把该事件丢弃掉。不再往上冒泡。

4.只要在这一条冒泡链当中,有一个节点处理了该事件,它就不会丢弃该事件,会继续往上冒,冒到body 然后document 然后window .

问题发现了,就是必须要有一个人处理这个事件,才会继续往上冒。

那么解决办法就是在body的下级,写个空函数接收一下事件。就行了。

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

      //这里不要写任何代码

});

完美解决!

iPhone safari中Document事件不触发的解决方案 [冒泡]

标签:io   ar   div   sp   问题   cti   on   c   代码   

原文地址:http://www.cnblogs.com/xdoudou/p/3991163.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!