it_leaner 2017-11-16 10:51 采纳率: 0%
浏览 4623

safari移动端网页点击事件无效

#首次点击时,没有执行点击事件,而是虚拟键盘弹了下去(https://img-ask.csdn.net/upload/201711/16/1510829072_766726.jpg)
虚拟键盘弹下去之后,再次点击按钮,才能触发事件(https://img-ask.csdn.net/upload/201711/16/1510829140_145204.jpg)
这个页面可以上下滑动,滑动后,浏览器自带的下方工具栏隐藏,此时,点击按钮时,不会触发事件,而是下方工具栏显示出来](http://himg.ask.csdn.net/upload/201711/16/1510829210_863601.jpg)
在下方工具栏存在的前提下,按钮事件才会生效(https://img-ask.csdn.net/upload/201711/16/1510829357_930238.jpg)
账号里没有C币啊,谢谢大家了

  • 写回答

1条回答 默认 最新

  • qq_40250105 2018-04-17 03:09
    关注

    可以使用以下代码测试

    <!DOCTYPE html>




    iOS click bug test
    <style>
        .container {
        }
    
        .target {
            display: block;
            text-align: center;
            margin: 100px 30px 0;
            padding: 10px 0;
            border: 1px solid #ccc;
        }
    </style>
    




    Click Me!

    <script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
    <script type="text/javascript">
        // 或者 $(document).on('click', ....)
        $('body').on('click', '.target', function (e) {
            alert('click');
        });
    </script>
    



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

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

    评论

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向