123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 |
- /*! jQuery Mobile v1.4.5 | Copyright 2010, 2014 jQuery Foundation, Inc. | jquery.org/license */
-
- (function (e, t, n) {
- typeof define == "function" && define.amd ? define(["jquery"], function (r) {
- return n(r, e, t), r.mobile
- }) : n(e.jQuery, e, t)
- })(this, document, function (e, t, n, r) {
- (function (e, t, n, r) {
- function T(e) {
- while (e && typeof e.originalEvent != "undefined")e = e.originalEvent;
- return e
- }
-
- function N(t, n) {
- var i = t.type, s, o, a, l, c, h, p, d, v;
- t = e.Event(t), t.type = n, s = t.originalEvent, o = e.event.props, i.search(/^(mouse|click)/) > -1 && (o = f);
- if (s)for (p = o.length, l; p;)l = o[--p], t[l] = s[l];
- i.search(/mouse(down|up)|click/) > -1 && !t.which && (t.which = 1);
- if (i.search(/^touch/) !== -1) {
- a = T(s), i = a.touches, c = a.changedTouches, h = i && i.length ? i[0] : c && c.length ? c[0] : r;
- if (h)for (d = 0, v = u.length; d < v; d++)l = u[d], t[l] = h[l]
- }
- return t
- }
-
- function C(t) {
- var n = {}, r, s;
- while (t) {
- r = e.data(t, i);
- for (s in r)r[s] && (n[s] = n.hasVirtualBinding = !0);
- t = t.parentNode
- }
- return n
- }
-
- function k(t, n) {
- var r;
- while (t) {
- r = e.data(t, i);
- if (r && (!n || r[n]))return t;
- t = t.parentNode
- }
- return null
- }
-
- function L() {
- g = !1
- }
-
- function A() {
- g = !0
- }
-
- function O() {
- E = 0, v.length = 0, m = !1, A()
- }
-
- function M() {
- L()
- }
-
- function _() {
- D(), c = setTimeout(function () {
- c = 0, O()
- }, e.vmouse.resetTimerDuration)
- }
-
- function D() {
- c && (clearTimeout(c), c = 0)
- }
-
- function P(t, n, r) {
- var i;
- if (r && r[t] || !r && k(n.target, t))i = N(n, t), e(n.target).trigger(i);
- return i
- }
-
- function H(t) {
- var n = e.data(t.target, s), r;
- !m && (!E || E !== n) && (r = P("v" + t.type, t), r && (r.isDefaultPrevented() && t.preventDefault(), r.isPropagationStopped() && t.stopPropagation(), r.isImmediatePropagationStopped() && t.stopImmediatePropagation()))
- }
-
- function B(t) {
- var n = T(t).touches, r, i, o;
- n && n.length === 1 && (r = t.target, i = C(r), i.hasVirtualBinding && (E = w++, e.data(r, s, E), D(), M(), d = !1, o = T(t).touches[0], h = o.pageX, p = o.pageY, P("vmouseover", t, i), P("vmousedown", t, i)))
- }
-
- function j(e) {
- if (g)return;
- d || P("vmousecancel", e, C(e.target)), d = !0, _()
- }
-
- function F(t) {
- if (g)return;
- var n = T(t).touches[0], r = d, i = e.vmouse.moveDistanceThreshold, s = C(t.target);
- d = d || Math.abs(n.pageX - h) > i || Math.abs(n.pageY - p) > i, d && !r && P("vmousecancel", t, s), P("vmousemove", t, s), _()
- }
-
- function I(e) {
- if (g)return;
- A();
- var t = C(e.target), n, r;
- P("vmouseup", e, t), d || (n = P("vclick", e, t), n && n.isDefaultPrevented() && (r = T(e).changedTouches[0], v.push({touchID: E, x: r.clientX, y: r.clientY}), m = !0)), P("vmouseout", e, t), d = !1, _()
- }
-
- function q(t) {
- var n = e.data(t, i), r;
- if (n)for (r in n)if (n[r])return !0;
- return !1
- }
-
- function R() {
- }
-
- function U(t) {
- var n = t.substr(1);
- return {
- setup: function () {
- q(this) || e.data(this, i, {});
- var r = e.data(this, i);
- r[t] = !0, l[t] = (l[t] || 0) + 1, l[t] === 1 && b.bind(n, H), e(this).bind(n, R), y && (l.touchstart = (l.touchstart || 0) + 1, l.touchstart === 1 && b.bind("touchstart", B).bind("touchend", I).bind("touchmove", F).bind("scroll", j))
- }, teardown: function () {
- --l[t], l[t] || b.unbind(n, H), y && (--l.touchstart, l.touchstart || b.unbind("touchstart", B).unbind("touchmove", F).unbind("touchend", I).unbind("scroll", j));
- var r = e(this), s = e.data(this, i);
- s && (s[t] = !1), r.unbind(n, R), q(this) || r.removeData(i)
- }
- }
- }
-
- var i = "virtualMouseBindings", s = "virtualTouchID", o = "vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "), u = "clientX clientY pageX pageY screenX screenY".split(" "), a = e.event.mouseHooks ? e.event.mouseHooks.props : [], f = e.event.props.concat(a), l = {}, c = 0, h = 0, p = 0, d = !1, v = [], m = !1, g = !1, y = "addEventListener"in n, b = e(n), w = 1, E = 0, S, x;
- e.vmouse = {moveDistanceThreshold: 10, clickDistanceThreshold: 10, resetTimerDuration: 1500};
- for (x = 0; x < o.length; x++)e.event.special[o[x]] = U(o[x]);
- y && n.addEventListener("click", function (t) {
- var n = v.length, r = t.target, i, o, u, a, f, l;
- if (n) {
- i = t.clientX, o = t.clientY, S = e.vmouse.clickDistanceThreshold, u = r;
- while (u) {
- for (a = 0; a < n; a++) {
- f = v[a], l = 0;
- if (u === r && Math.abs(f.x - i) < S && Math.abs(f.y - o) < S || e.data(u, s) === f.touchID) {
- t.preventDefault(), t.stopPropagation();
- return
- }
- }
- u = u.parentNode
- }
- }
- }, !0)
- })(e, t, n), function (e) {
- e.mobile = {}
- }(e), function (e, t) {
- var r = {touch: "ontouchend"in n};
- e.mobile.support = e.mobile.support || {}, e.extend(e.support, r), e.extend(e.mobile.support, r)
- }(e), function (e, t, r) {
- function l(t, n, i, s) {
- var o = i.type;
- i.type = n, s ? e.event.trigger(i, r, t) : e.event.dispatch.call(t, i), i.type = o
- }
-
- var i = e(n), s = e.mobile.support.touch, o = "touchmove scroll", u = s ? "touchstart" : "mousedown", a = s ? "touchend" : "mouseup", f = s ? "touchmove" : "mousemove";
- e.each("touchstart touchmove touchend tap taphold swipe swipeleft swiperight scrollstart scrollstop".split(" "), function (t, n) {
- e.fn[n] = function (e) {
- return e ? this.bind(n, e) : this.trigger(n)
- }, e.attrFn && (e.attrFn[n] = !0)
- }), e.event.special.scrollstart = {
- enabled: !0, setup: function () {
- function s(e, n) {
- r = n, l(t, r ? "scrollstart" : "scrollstop", e)
- }
-
- var t = this, n = e(t), r, i;
- n.bind(o, function (t) {
- if (!e.event.special.scrollstart.enabled)return;
- r || s(t, !0), clearTimeout(i), i = setTimeout(function () {
- s(t, !1)
- }, 50)
- })
- }, teardown: function () {
- e(this).unbind(o)
- }
- }, e.event.special.tap = {
- tapholdThreshold: 750, emitTapOnTaphold: !0, setup: function () {
- var t = this, n = e(t), r = !1;
- n.bind("vmousedown", function (s) {
- function a() {
- clearTimeout(u)
- }
-
- function f() {
- a(), n.unbind("vclick", c).unbind("vmouseup", a), i.unbind("vmousecancel", f)
- }
-
- function c(e) {
- f(), !r && o === e.target ? l(t, "tap", e) : r && e.preventDefault()
- }
-
- r = !1;
- if (s.which && s.which !== 1)return !1;
- var o = s.target, u;
- n.bind("vmouseup", a).bind("vclick", c), i.bind("vmousecancel", f), u = setTimeout(function () {
- e.event.special.tap.emitTapOnTaphold || (r = !0), l(t, "taphold", e.Event("taphold", {target: o}))
- }, e.event.special.tap.tapholdThreshold)
- })
- }, teardown: function () {
- e(this).unbind("vmousedown").unbind("vclick").unbind("vmouseup"), i.unbind("vmousecancel")
- }
- }, e.event.special.swipe = {
- scrollSupressionThreshold: 30, durationThreshold: 1e3, horizontalDistanceThreshold: 30, verticalDistanceThreshold: 30, getLocation: function (e) {
- var n = t.pageXOffset, r = t.pageYOffset, i = e.clientX, s = e.clientY;
- if (e.pageY === 0 && Math.floor(s) > Math.floor(e.pageY) || e.pageX === 0 && Math.floor(i) > Math.floor(e.pageX))i -= n, s -= r; else if (s < e.pageY - r || i < e.pageX - n)i = e.pageX - n, s = e.pageY - r;
- return {x: i, y: s}
- }, start: function (t) {
- var n = t.originalEvent.touches ? t.originalEvent.touches[0] : t, r = e.event.special.swipe.getLocation(n);
- return {time: (new Date).getTime(), coords: [r.x, r.y], origin: e(t.target)}
- }, stop: function (t) {
- var n = t.originalEvent.touches ? t.originalEvent.touches[0] : t, r = e.event.special.swipe.getLocation(n);
- return {time: (new Date).getTime(), coords: [r.x, r.y]}
- }, handleSwipe: function (t, n, r, i) {
- if (n.time - t.time < e.event.special.swipe.durationThreshold && Math.abs(t.coords[0] - n.coords[0]) > e.event.special.swipe.horizontalDistanceThreshold && Math.abs(t.coords[1] - n.coords[1]) < e.event.special.swipe.verticalDistanceThreshold) {
- var s = t.coords[0] > n.coords[0] ? "swipeleft" : "swiperight";
- return l(r, "swipe", e.Event("swipe", {target: i, swipestart: t, swipestop: n}), !0), l(r, s, e.Event(s, {target: i, swipestart: t, swipestop: n}), !0), !0
- }
- return !1
- }, eventInProgress: !1, setup: function () {
- var t, n = this, r = e(n), s = {};
- t = e.data(this, "mobile-events"), t || (t = {length: 0}, e.data(this, "mobile-events", t)), t.length++, t.swipe = s, s.start = function (t) {
- if (e.event.special.swipe.eventInProgress)return;
- e.event.special.swipe.eventInProgress = !0;
- var r, o = e.event.special.swipe.start(t), u = t.target, l = !1;
- s.move = function (t) {
- if (!o || t.isDefaultPrevented())return;
- r = e.event.special.swipe.stop(t), l || (l = e.event.special.swipe.handleSwipe(o, r, n, u), l && (e.event.special.swipe.eventInProgress = !1)), Math.abs(o.coords[0] - r.coords[0]) > e.event.special.swipe.scrollSupressionThreshold && t.preventDefault()
- }, s.stop = function () {
- l = !0, e.event.special.swipe.eventInProgress = !1, i.off(f, s.move), s.move = null
- }, i.on(f, s.move).one(a, s.stop)
- }, r.on(u, s.start)
- }, teardown: function () {
- var t, n;
- t = e.data(this, "mobile-events"), t && (n = t.swipe, delete t.swipe, t.length--, t.length === 0 && e.removeData(this, "mobile-events")), n && (n.start && e(this).off(u, n.start), n.move && i.off(f, n.move), n.stop && i.off(a, n.stop))
- }
- }, e.each({scrollstop: "scrollstart", taphold: "tap", swipeleft: "swipe.left", swiperight: "swipe.right"}, function (t, n) {
- e.event.special[t] = {
- setup: function () {
- e(this).bind(n, e.noop)
- }, teardown: function () {
- e(this).unbind(n)
- }
- }
- })
- }(e, this)
- });
-
- (function() {
- var supportTouch = $.support.touch,
- scrollEvent = "touchmove scroll",
- touchStartEvent = supportTouch ? "touchstart" : "mousedown",
- touchStopEvent = supportTouch ? "touchend" : "mouseup",
- touchMoveEvent = supportTouch ? "touchmove" : "mousemove";
- $.event.special.swipeupdown = {
- setup: function() {
- var thisObject = this;
- var $this = $(thisObject);
- $this.bind(touchStartEvent, function(event) {
- var data = event.originalEvent.touches ?
- event.originalEvent.touches[ 0 ] :
- event,
- start = {
- time: (new Date).getTime(),
- coords: [ data.pageX, data.pageY ],
- origin: $(event.target)
- },
- stop;
-
- function moveHandler(event) {
- if (!start) {
- return;
- }
- var data = event.originalEvent.touches ?
- event.originalEvent.touches[ 0 ] :
- event;
- stop = {
- time: (new Date).getTime(),
- coords: [ data.pageX, data.pageY ]
- };
-
- // prevent scrolling
- if (Math.abs(start.coords[1] - stop.coords[1]) > 10) {
- event.preventDefault();
- }
- }
- $this
- .bind(touchMoveEvent, moveHandler)
- .one(touchStopEvent, function(event) {
- $this.unbind(touchMoveEvent, moveHandler);
- if (start && stop) {
- if (stop.time - start.time < 1000 &&
- Math.abs(start.coords[1] - stop.coords[1]) > 30 &&
- Math.abs(start.coords[0] - stop.coords[0]) < 75) {
- start.origin
- .trigger("swipeupdown")
- .trigger(start.coords[1] > stop.coords[1] ? "swipeup" : "swipedown");
- }
- }
- start = stop = undefined;
- });
- });
- }
- };
- $.each({
- swipedown: "swipeupdown",
- swipeup: "swipeupdown"
- }, function(event, sourceEvent){
- $.event.special[event] = {
- setup: function(){
- $(this).bind(sourceEvent, $.noop);
- }
- };
- });
-
- })();
|