zoukankan      html  css  js  c++  java
  • jQuery的live绑定事件在mobile safari(iphone / ipad / ipod)上失效的解决方案

      jQuery的live绑定为什么会在mobile safari上失效呢?其实可以追溯到jQuery里live的实现方式。live的实现方式实际上是通过事件委托机制来实现的,也就是说是通过诸如冒泡的方式在DOM树的相应根节点上绑定事件,这样此结点下的所有节点都会默认绑定了此事件。mobile safari上之所以live会失效就是因为mobile safari可能阻止了事件的冒泡(这里也只是推测,实质的原因还在进一步查找),没有给根节点绑定相应的事件,从而导致了问题的产生。

          jQuery在mobile safari上使用live进行事件绑定会失效的解决方案有如下两个:

                   (1)将live绑定更改成bind绑定

                            但是这个前提是不需要给动态新生成的元素(如ajax请求后新建的元素)进行事件绑定,

                            否则建议采用第二种解决方案。

                   (2)在需要进行事件绑定的元素上(包括新建元素)添加onclick=""

                            这个方案比较完美,可以完全保留live的事件委托的实现方式,只是比较麻烦的是需要多

                            写很多的onclick=""。

    补充:在iOS设备上添加onclick后会导致系统的一些原生功能失效的问题,这里要酌情进行使用。

  • 相关阅读:
    Tcp/ip 报文解析
    使用redis构建可靠分布式锁
    提高服务器程序性能的一些方法
    socket读写返回值的处理
    也写年终总结
    记录服务上线一年来的点点滴滴
    C++实现线程安全的单例模式
    一步一步实现读写锁
    从I/O复用谈epoll为什么高效
    同域SQL server 做镜像服务器遇到1418错误
  • 原文地址:https://www.cnblogs.com/0808bing/p/3402149.html
Copyright © 2011-2022 走看看