前言
上周处理了react冒泡的问题,但是在后续测试过的过程中,发现iphone手机在safari浏览器下无法实现该效果
原因
在safari中,默认不可点击的元素(如span、div等)是不会触发点击事件的。也就是说,假如我给body
元素委托点击事件,但是body元素是一个默认不可点击元素,所以委托到body
上的事件无法通过冒泡的方式触发!
解决方法
- 将 click 事件直接绑定到目标元素上
- 将目标元素换成
a
或者者button
等可点击的元素 - 将 click 事件委托到非
document
或者body
的父级元素上 - 给目标元素加一条样式规则
cursor: pointer;
网友评论