TouchSwipe-Jquery-Plugin错误

时间:2015-12-16 11:08:19

标签: javascript jquery jquery-mobile touchswipe

你好我被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的);

0 个答案:

没有答案