解决移动端点击事件延迟300ms的问题
来源:互联网 发布:2017非诚勿扰淘宝店主 编辑:程序博客网 时间:2024/05/10 06:33
我们都知道移动端有双击放大页面, 为了能监听点击是否为双击, 在单击后会等待下一次单击来完成双击, 那我们只要单击的时候,就会延迟300ms才会触发单击事件,这里我写了一个扩展jquery的mpclick事件,兼容pc和移动端, 专门解决移动端上点击延迟, 当然你也可以使用hammer.js,效果也很好, 使用之前请先引入jquery
;(function($) { /** * 兼容移动端和pc端的点击事件 * @type {{setup: Function, teardown: Function}} */ $.event.special.mpclick = { setup: function () { var reg = /Android|ip(hone|ad|od)|Windows Phone|SymbianOS/gi; if(!reg.test(navigator.userAgent)) { $(this).click(function() { $(this).trigger("mpclick") }) } else { var startpoint = {x: 0, y: 0}; $(this).bind("touchstart", function(e) { e = e || window.event startpoint.x = Math.ceil(e.originalEvent.targetTouches[0].pageX); startpoint.y = Math.ceil(e.originalEvent.targetTouches[0].pageY); }); $(this).bind("touchend", function(e) { e = e || window.event var x = Math.ceil(e.originalEvent.changedTouches[0].pageX ); var y = Math.ceil(e.originalEvent.changedTouches[0].pageY ); if(x == startpoint.x && y == startpoint.y) { $(this).trigger("mpclick"); } e.preventDefault(); }) } }, teardown: function (namespaces) { $.event.remove(this, 'click'); $.event.remove(this, 'mpclick'); $.event.remove(this, 'touchstart'); $.event.remove(this, 'touchend'); } }; $.fn.mpclick = function (callback) { return callback ? this.bind("mpclick", callback) : this.trigger("mpclick"); };})(jQuery, window, document)
绑定 $(".testClass").mpclick(function(){}) 或者 $(".testClass").bind("mpclick", function(){}) .....
触发 $(".testClass").mpclick() 或者$(".testClass").trigger("mpclick")
好了, 希望你帮到你
2 0
- 解决移动端点击事件延迟300ms的问题
- 解决移动端点击事件延迟300ms
- 解决移动端点击事件延迟300ms
- 移动端点击300ms延迟问题和解决
- 移动端点击300ms延迟问题和解决
- ios移动端点击事件延迟300ms
- 移动端点击穿透和click事件300ms延迟问题
- 移动端点击事件延迟300毫秒
- Jquery 解决移动端onclick事件300ms延迟问题
- Jquery 解决移动端onclick事件300ms延迟问题
- 移动端点击事件延迟 击透及解决
- 移动端点击(click)事件延迟问题的产生与解决方法
- 移动端click事件300ms延迟
- 解决移动端点击链接触发颜色块的问题
- 移动端click事件延迟300ms到底是怎么回事,该如何解决?
- 移动Web触控事件总结—click的300ms延迟、点透、鬼点击问题
- 小程序之解决移动端点击和长按事件冒泡问题
- 手机端解决Click延迟300ms 的问题
- Android fragment里面嵌套两个fragment 子fragment里面有recyclerview或者GridView 图像重绘的问题
- 记录java一些第三方优秀的类库
- C#中如何添加dll引用
- 启动mongod报错child process failed, exited with error number 100
- 【教程】微信公众平台开发模式接入客服系统
- 解决移动端点击事件延迟300ms的问题
- 安卓开发:布局中为控件添加选择器
- java服务端–微信APP支付接口
- Android Studio使用错误集
- xcode8升级之后项目遇到了问题
- Vijos 1172题:反质数
- 爬虫养成记
- 设计模式C++实现(13)——中介者模式
- 如何判断一个网站建设公司的实力