最近身边的同事不止一个碰到这样的问题:
在ios上对body绑定click事实现事件代理冒泡至某些元素上尽然不生效。
代码类似这样的
$('body').on('click','[data-tip]',function(e){
console.log($(this.).attr('data-tip'))
})
解决办法:
1.将click事件换成touch事件,同时还可以解决300ms的click延迟问题,但是需要e.stopPropagation()来阻止冒泡的处理会非常麻烦。
2.在对不能正常冒泡的元素上再进行一次事件绑定,比如对于tr可以在
上再进行一次事件代理。3.最简洁的办法,在不能正常冒泡的元素的css属性里面添加,cursor:pointer属性。
4.换成可以正常冒泡的标签。