zoukankan      html  css  js  c++  java
  • iPhone safari中Document事件不触发的解决方案 [冒泡]

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

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

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

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

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

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

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

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

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

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

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

          //这里不要写任何代码

    });

    完美解决!

  • 相关阅读:
    Problem B. Harvest of Apples
    字典树的学习
    PACM Team
    2038: [2009国家集训队]小Z的袜子(hose)
    Naive Operations
    C程序设计语言练习 第三章
    数据结构C++实现-第一章 绪论
    排序
    操作系统设计与实现-第一章:序言
    进制转换
  • 原文地址:https://www.cnblogs.com/xdoudou/p/3991163.html
Copyright © 2011-2022 走看看