栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > iOS

IOS设备上给body绑定click事件不生效的原因及解决办法

iOS 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

IOS设备上给body绑定click事件不生效的原因及解决办法

事件背景:

  最近在做一个移动端业务的时候碰到一个bug,在ios上对body绑定click事实现事件代理冒泡至某些元素上尽然不生效。

思考:

  暂借助jquery展示下事件绑定代码,将所有标签含有data-tip属性的元素通过事件代理至body

$('body').on('click','[data-tip]',function(e){
console.log($(this.).attr('data-tip')) 
}) 

  这样做在android和pc上都可以正常实现,但是在ios上面对部分标签尽然不生效。比如 tr , span ...这样的标签

解决办法:

  1.将click事件换成touch事件,同时还可以解决300ms的click延迟问题,但是需要e.stopPropagation()来阻止冒泡的处理会非常麻烦。

  2.在对不能正常冒泡的元素上再进行一次事件绑定,比如对于tr可以在

上再进行一次事件代理。

  3.最简洁的办法,在不能正常冒泡的元素的css属性里面添加,cursor:pointer属性。

  4.换成可以正常冒泡的标签。

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号