iOS踩坑记录之通过body标签委托事件无效的解决办法

问题描述

在iOS系统的浏览器运行h5页面时,如果通过body或者html标签委托事件,并且委托元素默认不可点击(如div / span / p 等元素),那么点击事件(tap或者click)将会失效。

解决办法

解决办法有 4 种:

  1. 将点击事件直接绑定到目标​元素(​​即 .target)上
  2. 将目标​元素换成 <a> 或者 button 等可点击的​元素
  3. ​将点击事件委托到​​​​​非 html 或 body 的​​父级元素上
  4. 给​目标元素加一条样式 cursor: pointer;

​推荐后两种。从解决办法来看,​推测在 safari 中,不可点击的元素的点击事件不会冒泡到父级元素。通过添加 cursor: pointer 使得元素变成可点击的了。

引用:
https://www.cnblogs.com/Steping/p/5737547.html
https://happycoder.net/solve-ios-safari-click-event-bug/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。