你好我被TouchSwip.Js搞砸了
错误 忽略尝试取消具有cancelable = false的touchend事件,例如因为滚动正在进行且无法中断。
代码 (function(g){ 功能P(c){ if(c&& void 0 === c.allowPageScroll&&(void 0!== c.swipe || void 0!== c.swipeStatus))c.allowPageScroll = G; c || (c = {}); c = g.extend({},g.fn.swipe.defaults,c); return this.each(function(){ var b = g(this), f = b.data(w); f || (f =新W(this,c),b.data(w,f)) }) }
function W(c, b) {
var f, p, r, s;
function H(a) {
var a = a.originalEvent,
c, Q = n ? a.touches[0] : a;
d = R;
n ? h = a.touches.length : a.preventDefault();
i = 0;
j = null;
k = 0;
!n || h === b.fingers || b.fingers === x ? (r = f = Q.pageX, s = p = Q.pageY, y = (new Date).getTime(), b.swipeStatus && (c = l(a, d))) : t(a);
if (!1 === c) return d = m, l(a, d), c;
e.bind(I, J);
e.bind(K, L)
}
function J(a) {
a = a.originalEvent;
if (!(d === q || d === m)) {
var c, e = n ? a.touches[0] : a;
f = e.pageX;
p = e.pageY;
u = (new Date).getTime();
j = S();
n && (h = a.touches.length);
d = z;
var e = a,
g = j;
if (b.allowPageScroll === G) e.preventDefault();
else {
var o = b.allowPageScroll === T;
switch (g) {
case v:
(b.swipeLeft && o || !o && b.allowPageScroll != M) && e.preventDefault();
break;
case A:
(b.swipeRight && o || !o && b.allowPageScroll != M) && e.preventDefault();
break;
case B:
(b.swipeUp && o || !o && b.allowPageScroll != N) && e.preventDefault();
break;
case C:
(b.swipeDown && o || !o && b.allowPageScroll != N) && e.preventDefault()
}
}
h === b.fingers || b.fingers === x || !n ? (i = U(), k = u - y, b.swipeStatus && (c = l(a, d, j, i, k)), b.triggerOnTouchEnd || (e = !(b.maxTimeThreshold ? !(k >= b.maxTimeThreshold) : 1), !0 === D() ? (d = q, c = l(a, d)) : e && (d = m, l(a, d)))) : (d = m, l(a, d));
!1 === c && (d = m, l(a, d))
}
}
function L(a) {
a = a.originalEvent;
a.preventDefault();
u = (new Date).getTime();
i = U();
j = S();
k = u - y;
if (b.triggerOnTouchEnd || !1 === b.triggerOnTouchEnd && d === z)
if (d = q, (h === b.fingers || b.fingers === x || !n) && 0 !== f) {
var c = !(b.maxTimeThreshold ? !(k >= b.maxTimeThreshold) : 1);
if ((!0 === D() || null === D()) && !c) l(a, d);
else if (c || !1 === D()) d = m, l(a, d)
} else d = m, l(a, d);
else d === z && (d = m, l(a, d));
e.unbind(I, J, !1);
e.unbind(K, L, !1)
}
function t() {
y = u = p = f = s = r = h = 0
}
function l(a, c) {
var d = void 0;
b.swipeStatus && (d = b.swipeStatus.call(e, a, c, j || null, i || 0, k || 0, h));
if (c === m && b.click && (1 === h || !n) && (isNaN(i) || 0 === i)) d = b.click.call(e, a, a.target);
if (c == q) switch (b.swipe && (d = b.swipe.call(e, a, j, i, k, h)), j) {
case v:
b.swipeLeft && (d = b.swipeLeft.call(e, a, j, i, k, h));
break;
case A:
b.swipeRight && (d = b.swipeRight.call(e, a, j, i, k, h));
break;
case B:
b.swipeUp && (d = b.swipeUp.call(e, a, j, i, k, h));
break;
case C:
b.swipeDown && (d = b.swipeDown.call(e, a, j, i, k, h))
}(c === m || c === q) && t(a);
return d
}
function D() {
return null !== b.threshold ? i >= b.threshold : null
}
function U() {
return Math.round(Math.sqrt(Math.pow(f - r, 2) + Math.pow(p - s, 2)))
}
function S() {
var a;
a = Math.atan2(p - s, r - f);
a = Math.round(180 * a / Math.PI);
0 > a && (a = 360 - Math.abs(a));
return 45 >= a && 0 <= a ? v : 360 >= a && 315 <= a ? v : 135 <= a && 225 >= a ? A : 45 < a && 135 > a ? C : B
}
function V() {
e.unbind(E, H);
e.unbind(F, t);
e.unbind(I, J);
e.unbind(K, L)
}
var O = n || !b.fallbackToMouseEvents,
E = O ? "touchstart" : "mousedown",
I = O ? "touchmove" : "mousemove",
K = O ? "touchend" : "mouseup",
F = "touchcancel",
i = 0,
j = null,
k = 0,
e = g(c),
d = "start",
h = 0,
y = p = f = s = r = 0,
u = 0;
try {
e.bind(E, H), e.bind(F, t)
} catch (P) {
g.error("events not supported " + E + "," + F + " on jQuery.swipe")
}
this.enable = function() {
e.bind(E, H);
e.bind(F, t);
return e
};
this.disable = function() {
V();
return e
};
this.destroy = function() {
V();
e.data(w, null);
return e
}
}
var v = "left",
A = "right",
B = "up",
C = "down",
G = "none",
T = "auto",
M = "horizontal",
N = "vertical",
x = "all",
R = "start",
z = "move",
q = "end",
m = "cancel",
n = "ontouchstart" in window,
w = "TouchSwipe";
g.fn.swipe = function(c) {
var b = g(this),
f = b.data(w);
if (f && "string" === typeof c) {
if (f[c]) return f[c].apply(this, Array.prototype.slice.call(arguments, 1));
g.error("Method " + c + " does not exist on jQuery.swipe")
} else if (!f && ("object" === typeof c || !c)) return P.apply(this, arguments);
return b
};
g.fn.swipe.defaults = {
fingers: 1,
threshold: 75,
maxTimeThreshold: null,
swipe: null,
swipeLeft: null,
swipeRight: null,
swipeUp: null,
swipeDown: null,
swipeStatus: null,
click: null,
triggerOnTouchEnd: !0,
allowPageScroll: "auto",
fallbackToMouseEvents: !0
};
g.fn.swipe.phases = {
PHASE_START: R,
PHASE_MOVE: z,
PHASE_END: q,
PHASE_CANCEL: m
};
g.fn.swipe.directions = {
LEFT: v,
RIGHT: A,
UP: B,
DOWN: C
};
g.fn.swipe.pageScroll = {
NONE: G,
HORIZONTAL: M,
VERTICAL: N,
AUTO: T
};
g.fn.swipe.fingers = {
ONE: 1,
TWO: 2,
THREE: 3,
ALL: x
}
})(jQuery的);