首页 > 代码库 > jQuery的on绑定事件在mobile safari(iphone / ipad / ipod)上无法使用的解决方案

jQuery的on绑定事件在mobile safari(iphone / ipad / ipod)上无法使用的解决方案

用一个div当做了一个按钮来使用。

 

<div class="button">    <div class=" next_button button_left btn_red" style="width: 345px;">    下一步    </div></div>

因为是动态添加的内容,所以想要使用click事件,需要给他用on绑定一下:

$(document).on("click",".next_button",function(){    alert();});

这个时候,使用苹果手机访问的时候,发现了一个坑爹的问题,如论如何点击“下一步”,都没有任何反应,可是在安卓和各种模拟器中一切正常。后来经过查找资料才知道,苹果有这么个设置: 
对于点击的对象,拥有cursor:pointer这个样式的设置,也就是说,鼠标放上去,能够出现“手”型的图标才被认作可以使用点击事件,于是果断增加了样式

<style>    .next_button{        cursor:pointer    }</style>

 

原因:

冒泡事件是标准存在的,jquery的on事件也是没有问题。
问题出在,你要给你的dom写一个css样式 cursor:pointer
因为safari认为这才是一个可点击区域,这样表达更加友好,才会让你可以click,你才可以点击,你才可以绑定。

又或则你是一个<a>标签,然后<a>标签里面只有是<img>标签,你的<a>标签用on绑定click事件也是可以的,其他的标签都被无视click了。

又或则你用tap事件,又或则你直接仿写click,摁下超过300毫秒再触发都是可以的。

希望我的答案可以帮助到其他开发web移动端的小伙伴


作者:bo Bo
链接:https://www.zhihu.com/question/23689377/answer/48964971
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

jQuery的on绑定事件在mobile safari(iphone / ipad / ipod)上无法使用的解决方案