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币啊,谢谢大家了

可以使用以下代码测试

<!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 使得元素变成了可点击的了。