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

用一个div当作了一个按钮来使用。css

 

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

由于是动态添加的内容,因此想要使用click事件,须要给他用on绑定一下:html

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

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

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

 

缘由:web

冒泡事件是标准存在的,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 来源:知乎 著做权归做者全部,转载请联系做者得到受权。
相关文章
相关标签/搜索