形成点击缓慢的缘由javascript
从点击屏幕上的元素到触发元素的 click
事件,移动浏览器会有大约 300 毫秒的等待时间。为何这么设计呢? 由于它想看看你是否是要进行双击(double tap)操做。java
第一种解决方案:jquery
使用js框架fastclick, 处理移动端 click
事件 300 毫秒延迟, 由 FT Labs 开发,Github 项目地址:https://github.com/ftlabs/fastclickios
在页面直接引入fastclick.jsgit
<script type='application/javascript' src='/path/to/fastclick.js'></script>
原生js使用方法:github
window.addEventListener('load', function() { FastClick.attach(document.body); }, false);
环境内有jquery的状况下,使用方法:浏览器
$(function() { FastClick.attach(document.body); });
第二种解决方案:app
第二种解决方案是将click事件替换为touchstart事件框架
$(document).on("touchstart",".farmGoods",function(){ alert('111'); });
这两个解决方案的差别:测试
1.第一种方案在ios上面仍是会存在有点延迟的问题,可是能解决连续点击没反应的问题,上下滑动滚动条不会选中事件
2.第二种方案在ios上面不会存在延迟的问题,可是上下滑动滚动条会选中手指接触的第一个元素
ps:这里博主只是在ios App上面测试的这个问题,并未发现安卓系统会存在延迟、连选不中的问题;
推荐使用第一种解决方案