手机
当前位置:查字典教程网 >编程开发 >IOS开发 >IOS设备上给body绑定click事件不生效的原因及解决办法
IOS设备上给body绑定click事件不生效的原因及解决办法
摘要:事件背景:最近在做一个移动端业务的时候碰到一个bug,在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可以在<table>上再进行一次事件代理。

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

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

【IOS设备上给body绑定click事件不生效的原因及解决办法】相关文章:

iOS中json解析出现的null,nil,NSNumber的解决办法

IOS开发中键盘输入屏幕上移的解决方法

Android中getActivity()为null的解决办法

iOS开发中Subview的事件响应以及获取subview的方法

IOS中UIWebView加载Loading的实现方法

IOS CoreAnimation中layer动画闪烁的解决方法

Xcode 8打印log日志的问题小结及解决方法

一个iOS上的秒表小应用的实现方法分享

iOS应用开发中监听键盘事件的代码实例小结

iOS应用中存储用户设置的plist文件的创建与读写教程

精品推荐
分类导航