鸦杀's Blog

ios事件委托坑点

2016-05-28

坑点:在ios中,通过在window,document,body上添加click事件委托,有时会无效。

初次注意到这个坑是在今年2月份一个米币优惠券的需求上。弹窗在Android上可以正常关闭,但是在ios某些版本上关闭失效。后来发现是事件委托的导致。之后都是尽量地去避免使用事件委托。

后来偶尔在知乎上看到了答案,解决办法就是在目标元素上设置css属性cursor:pointer。原来ios认为cursor:pointer才是可点击区域,因此除了input,a,button这三个元素外,如果要使用事件委托的方式绑定click事件,都需要添加cursor:pointer。

当然,这种解决办法也会引起新的问题,它会禁止元素上的复制\粘贴功能,并且当点击元素时,会导致该元素被高亮显示。

延伸:禁止点击:cursor:not-allowed

扫描二维码,分享此文章