- $.fn.tap = function(fn){
- var collection = this,
- isTouch = "ontouchend" in document.createElement("div"),
- tstart = isTouch ? "touchstart" : "mousedown",
- tmove = isTouch ? "touchmove" : "mousemove",
- tend = isTouch ? "touchend" : "mouseup",
- tcancel = isTouch ? "touchcancel" : "mouseout";
- collection.each(function(){
- var i = {};
- i.target = this;
- $(i.target).on(tstart,function(e){
- var p = "touches" in e ? e.touches[0] : (isTouch ? window.event.touches[0] : window.event);
- i.startX = p.clientX;
- i.startY = p.clientY;
- i.endX = p.clientX;
- i.endY = p.clientY;
- i.startTime = + new Date;
- });
- $(i.target).on(tmove,function(e){
- var p = "touches" in e ? e.touches[0] : (isTouch ? window.event.touches[0] : window.event);
- i.endX = p.clientX;
- i.endY = p.clientY;
- });
- $(i.target).on(tend,function(e){
- if((+ new Date)-i.startTime<300){
- if(Math.abs(i.endX-i.startX)+Math.abs(i.endY-i.startY)<20){
- var e = e || window.event;
- e.preventDefault();
- fn.call(i.target);
- }
- }
- i.startTime = undefined;
- i.startX = undefined;
- i.startY = undefined;
- i.endX = undefined;
- i.endY = undefined;
- });
- });
- return collection;
- }
- //该片段来自于http://www.codesnippet.cn/detail/2010201410691.html
来源: http://www.codesnippet.cn/detail/2010201410691.html