#首次点击时,没有执行点击事件,而是虚拟键盘弹了下去(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>
<style>
.container {
}
.target {
display: block;
text-align: center;
margin: 100px 30px 0;
padding: 10px 0;
border: 1px solid #ccc;
}
</style>
<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 使得元素变成了可点击的了。