问题描述
在iOS系统的浏览器运行h5页面时,如果通过body或者html标签委托事件,并且委托元素默认不可点击(如div / span / p 等元素),那么点击事件(tap或者click)将会失效。
解决办法
解决办法有 4 种:
- 将点击事件直接绑定到目标元素(即 .target)上
- 将目标元素换成 <a> 或者 button 等可点击的元素
- 将点击事件委托到非 html 或 body 的父级元素上
- 给目标元素加一条样式 cursor: pointer;
推荐后两种。从解决办法来看,推测在 safari 中,不可点击的元素的点击事件不会冒泡到父级元素。通过添加 cursor: pointer 使得元素变成可点击的了。
引用:
https://www.cnblogs.com/Steping/p/5737547.html
https://happycoder.net/solve-ios-safari-click-event-bug/