ios safari onclick事件失效的解决办法

今天公司产品反馈里,有用户说产品点按钮点不动,看了下是ios web端的,自己试了试没问题,看了下代码 是用div的onclick事件跳转的:

<div onclick="location.href='/?m=welfareSource'">我要爆料</div>

貌似没什么问题啊?让用户看看有没有禁用js,清下缓存,都没用,于是百度

终于看到一条有用的消息,《iOS Safari 中点击事件失效的解决办法
以下为内容引用:

问题描述:

当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效。

解决办法

解决办法有 4 种可供选择:

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

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

最终使用第四种方法,完美解决

刘杨哥博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论
  • © 2014-2018 liuyangge.com 版权所有 ICP证:津ICP备15004811号-1
  • 联系邮箱:1009856694@qq.com