首页 > 代码库 > iPhone safari中Document事件不触发的解决方案 [冒泡]
iPhone safari中Document事件不触发的解决方案 [冒泡]
写了一个下拉菜单,在单击空白地方的时候隐藏。
第一时间就是用$(document).click(function(){ //隐藏代码 });
各大浏览器都没问题,唯独iPhone上的不会触发事件。
后来排查了一遍原因发现,Safari中是这样处理事件冒泡的:
1.点击某个DIV或其他元素。
2.发现没有处理该事件,继续往上冒泡。
3.直到冒泡到body下面的子节点为止,还是没有人处理该事件的话,就把该事件丢弃掉。不再往上冒泡。
4.只要在这一条冒泡链当中,有一个节点处理了该事件,它就不会丢弃该事件,会继续往上冒,冒到body 然后document 然后window .
问题发现了,就是必须要有一个人处理这个事件,才会继续往上冒。
那么解决办法就是在body的下级,写个空函数接收一下事件。就行了。
$("body").children().click(function () {
//这里不要写任何代码
});
完美解决!
iPhone safari中Document事件不触发的解决方案 [冒泡]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。