首先上代码
<!DOCTYPE html>
<html>
<head>
<title>ios web页面 onclick 点击失效</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no">
</head>
<body>
<div>
adfafasdfasdfasdfasfdasdf<br/>
adfafasdfasdfasdfasfdasdf<br/>
adfafasdfasdfasdfasfdasdf<br/>
adfafasdfasdfasdfasfdasdf<br/>
adfafasdfasdfasdfasfdasdf<br/>
adfafasdfasdfasdfasfdasdf<br/>
adfafasdfasdfasdfasfdasdf<br/>
adfafasdfasdfasdfasfdasdf<br/>
adfafasdfasdfasdfasfdasdf<br/>
adfafasdfasdfasdfasfdasdf<br/>
</div>
<div>
<img src="__IMG__/indexbanner.png" alt=""/>
</div>
<script src="__JS__/jquery-1.11.1.min.js"></script>
<script>
$(function(){
$('body').on("click", function(e){
alert("click");
});
})
</script>
</body>
</html>
点击在文字上和点击在图片上是否都会弹出“click”呢?
结果是只有第二个img的点击能正确触发click,点击div里的文字完全没效果。
解决办法就是绑定到 “touchend” 事件
这个bug只有在ios的Safari下才能出现,pc端、android端都没有问题
移动端的点击处理还是得尽量用touch类的事件 click 坑太多了。
引用别处解释
在移动端ios的span div元素不能使用click事件,android的只有div不能绑定click事件,最好用原生的ontouch事件,但是对其他的事件比如focus什么的还是可以用的,其他元素绑定click也没问题,但是建议在移动端用touch事件取代click事件比较好。