同时支持长按和点击事件,无依赖版
Document
jquery / zepto版本的实现,注意闭包的问题
$.fn.longPress = function(callback) { var timer = undefined; var $this = this; // 支持绑定多个元素 for (var i = 0; i < $this.length; i++) { var self = $this[i]; // 注意这里的闭包问题 (function(e){ self.addEventListener('touchstart', function(event) { timer = setTimeout(function () { callback(e); }, 500); }, false); self.addEventListener('touchmove', function(event) { clearTimeout(timer); }, false); self.addEventListener('touchend', function(event) { clearTimeout(timer); }, false); })($this[i]); }}// 调用示例$(".card-con li").longPress(function(e){ console.log(e, $(e).index()); });
知乎上找到的原生实现:
长按我