/[projects]/misc/horsensspejder-web/jquery/jquery-ui-1.10.3/ui/jquery.ui.mouse.js
ViewVC logotype

Contents of /misc/horsensspejder-web/jquery/jquery-ui-1.10.3/ui/jquery.ui.mouse.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2125 - (show annotations) (download) (as text)
Wed Mar 12 19:30:05 2014 UTC (10 years, 3 months ago) by torben
File MIME type: application/javascript
File size: 4561 byte(s)
initial import
1 /*!
2 * jQuery UI Mouse 1.10.3
3 * http://jqueryui.com
4 *
5 * Copyright 2013 jQuery Foundation and other contributors
6 * Released under the MIT license.
7 * http://jquery.org/license
8 *
9 * http://api.jqueryui.com/mouse/
10 *
11 * Depends:
12 * jquery.ui.widget.js
13 */
14 (function( $, undefined ) {
15
16 var mouseHandled = false;
17 $( document ).mouseup( function() {
18 mouseHandled = false;
19 });
20
21 $.widget("ui.mouse", {
22 version: "1.10.3",
23 options: {
24 cancel: "input,textarea,button,select,option",
25 distance: 1,
26 delay: 0
27 },
28 _mouseInit: function() {
29 var that = this;
30
31 this.element
32 .bind("mousedown."+this.widgetName, function(event) {
33 return that._mouseDown(event);
34 })
35 .bind("click."+this.widgetName, function(event) {
36 if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) {
37 $.removeData(event.target, that.widgetName + ".preventClickEvent");
38 event.stopImmediatePropagation();
39 return false;
40 }
41 });
42
43 this.started = false;
44 },
45
46 // TODO: make sure destroying one instance of mouse doesn't mess with
47 // other instances of mouse
48 _mouseDestroy: function() {
49 this.element.unbind("."+this.widgetName);
50 if ( this._mouseMoveDelegate ) {
51 $(document)
52 .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate)
53 .unbind("mouseup."+this.widgetName, this._mouseUpDelegate);
54 }
55 },
56
57 _mouseDown: function(event) {
58 // don't let more than one widget handle mouseStart
59 if( mouseHandled ) { return; }
60
61 // we may have missed mouseup (out of window)
62 (this._mouseStarted && this._mouseUp(event));
63
64 this._mouseDownEvent = event;
65
66 var that = this,
67 btnIsLeft = (event.which === 1),
68 // event.target.nodeName works around a bug in IE 8 with
69 // disabled inputs (#7620)
70 elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
71 if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
72 return true;
73 }
74
75 this.mouseDelayMet = !this.options.delay;
76 if (!this.mouseDelayMet) {
77 this._mouseDelayTimer = setTimeout(function() {
78 that.mouseDelayMet = true;
79 }, this.options.delay);
80 }
81
82 if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
83 this._mouseStarted = (this._mouseStart(event) !== false);
84 if (!this._mouseStarted) {
85 event.preventDefault();
86 return true;
87 }
88 }
89
90 // Click event may never have fired (Gecko & Opera)
91 if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) {
92 $.removeData(event.target, this.widgetName + ".preventClickEvent");
93 }
94
95 // these delegates are required to keep context
96 this._mouseMoveDelegate = function(event) {
97 return that._mouseMove(event);
98 };
99 this._mouseUpDelegate = function(event) {
100 return that._mouseUp(event);
101 };
102 $(document)
103 .bind("mousemove."+this.widgetName, this._mouseMoveDelegate)
104 .bind("mouseup."+this.widgetName, this._mouseUpDelegate);
105
106 event.preventDefault();
107
108 mouseHandled = true;
109 return true;
110 },
111
112 _mouseMove: function(event) {
113 // IE mouseup check - mouseup happened when mouse was out of window
114 if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) {
115 return this._mouseUp(event);
116 }
117
118 if (this._mouseStarted) {
119 this._mouseDrag(event);
120 return event.preventDefault();
121 }
122
123 if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
124 this._mouseStarted =
125 (this._mouseStart(this._mouseDownEvent, event) !== false);
126 (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
127 }
128
129 return !this._mouseStarted;
130 },
131
132 _mouseUp: function(event) {
133 $(document)
134 .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate)
135 .unbind("mouseup."+this.widgetName, this._mouseUpDelegate);
136
137 if (this._mouseStarted) {
138 this._mouseStarted = false;
139
140 if (event.target === this._mouseDownEvent.target) {
141 $.data(event.target, this.widgetName + ".preventClickEvent", true);
142 }
143
144 this._mouseStop(event);
145 }
146
147 return false;
148 },
149
150 _mouseDistanceMet: function(event) {
151 return (Math.max(
152 Math.abs(this._mouseDownEvent.pageX - event.pageX),
153 Math.abs(this._mouseDownEvent.pageY - event.pageY)
154 ) >= this.options.distance
155 );
156 },
157
158 _mouseDelayMet: function(/* event */) {
159 return this.mouseDelayMet;
160 },
161
162 // These are placeholder methods, to be overriden by extending plugin
163 _mouseStart: function(/* event */) {},
164 _mouseDrag: function(/* event */) {},
165 _mouseStop: function(/* event */) {},
166 _mouseCapture: function(/* event */) { return true; }
167 });
168
169 })(jQuery);

  ViewVC Help
Powered by ViewVC 1.1.20