昨天碰到这种问题,在Android手机上点击事件是可以的,但是iOS手机没反应。用的是jQuery,我立即就想到是点击事件格式写的有问题,因为 我之前就碰到过类似的问题,比如,你用js 生成的一个按钮 <div class="btn">按钮</div> (记住是 js 生成的,不是HTML写的),用 $('.btn').on("click",function(){}); 这样点击事件可能会不生效。需要这样写,$('XXX').on('click','.btn',function(){}); ('XXX' 是HTML上的btn的一个父级dom) ,这样才会生效。
$('XXX').on('click','.btn',function(){}); ('XXX' 是HTML上的btn的一个父级dom) 但是这种写法在ios手机会出现点击事件不生效的情况,解决办法我搜了下,几种解决办法如下:
$(document).on('click', 'dl dt', function() {
//something()
});
在pc以及安卓设备都是正常的,但是在ios上面就失效了。
问题描述:
当使用委托给一个元素添加click事件时,如果事件是委托到 document或 body上,并且委托的元素是默认不可点击的(如 div, span等),此时 click事件会失效。
解决方法
1、将 click 事件直接绑定到目标元素(即 .target)上;
2、将目标元素换成 a 或者button 等可点击的元素;
3、将 click 事件委托到非 document 或 body 的父级元素上;
4、给目标元素加一条样式规则 cursor: pointer。
原链接:http://www.jianshu.com/p/e69b38c7fa75