Mercurial > hg > ismi-richfaces
comparison src/main/webapp/imageServer/resources/js/jquery-ui-1.10.4/ui/jquery.ui.mouse.js @ 7:764f47286679
(none)
author | jurzua |
---|---|
date | Wed, 29 Oct 2014 14:28:34 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
6:ded3bccf2cf9 | 7:764f47286679 |
---|---|
1 /*! | |
2 * jQuery UI Mouse 1.10.4 | |
3 * http://jqueryui.com | |
4 * | |
5 * Copyright 2014 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.4", | |
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); |