jquerypp-rails 1.0.1.1.rc3 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +28 -31
- data/lib/jquerypp/rails/version.rb +1 -1
- metadata +2 -25
- data/vendor/assets/javascripts/lib/jquery.animate.js +0 -326
- data/vendor/assets/javascripts/lib/jquery.compare.js +0 -75
- data/vendor/assets/javascripts/lib/jquery.cookie.js +0 -118
- data/vendor/assets/javascripts/lib/jquery.dimensions.js +0 -191
- data/vendor/assets/javascripts/lib/jquery.event.default.js +0 -115
- data/vendor/assets/javascripts/lib/jquery.event.destroyed.js +0 -23
- data/vendor/assets/javascripts/lib/jquery.event.drag.js +0 -727
- data/vendor/assets/javascripts/lib/jquery.event.drop.js +0 -457
- data/vendor/assets/javascripts/lib/jquery.event.fastfix.js +0 -95
- data/vendor/assets/javascripts/lib/jquery.event.hover.js +0 -266
- data/vendor/assets/javascripts/lib/jquery.event.key.js +0 -156
- data/vendor/assets/javascripts/lib/jquery.event.livehack.js +0 -174
- data/vendor/assets/javascripts/lib/jquery.event.pause.js +0 -92
- data/vendor/assets/javascripts/lib/jquery.event.resize.js +0 -47
- data/vendor/assets/javascripts/lib/jquery.event.swipe.js +0 -133
- data/vendor/assets/javascripts/lib/jquery.fills.js +0 -249
- data/vendor/assets/javascripts/lib/jquery.form_params.js +0 -167
- data/vendor/assets/javascripts/lib/jquery.lang.json.js +0 -196
- data/vendor/assets/javascripts/lib/jquery.lang.vector.js +0 -214
- data/vendor/assets/javascripts/lib/jquery.range.js +0 -861
- data/vendor/assets/javascripts/lib/jquery.selection.js +0 -232
- data/vendor/assets/javascripts/lib/jquery.styles.js +0 -103
- data/vendor/assets/javascripts/lib/jquery.within.js +0 -94
@@ -1,95 +0,0 @@
|
|
1
|
-
// - jquery.event.fastfix.js
|
2
|
-
(function () {
|
3
|
-
// http://bitovi.com/blog/2012/04/faster-jquery-event-fix.html
|
4
|
-
// https://gist.github.com/2377196
|
5
|
-
|
6
|
-
// IE 8 has Object.defineProperty but it only defines DOM Nodes. According to
|
7
|
-
// http://kangax.github.com/es5-compat-table/#define-property-ie-note
|
8
|
-
// All browser that have Object.defineProperties also support Object.defineProperty properly
|
9
|
-
if(Object.defineProperties) {
|
10
|
-
var
|
11
|
-
// Use defineProperty on an object to set the value and return it
|
12
|
-
set = function (obj, prop, val) {
|
13
|
-
if(val !== undefined) {
|
14
|
-
Object.defineProperty(obj, prop, {
|
15
|
-
value : val
|
16
|
-
});
|
17
|
-
}
|
18
|
-
return val;
|
19
|
-
},
|
20
|
-
// special converters
|
21
|
-
special = {
|
22
|
-
pageX : function (original) {
|
23
|
-
var eventDoc = this.target.ownerDocument || document;
|
24
|
-
doc = eventDoc.documentElement;
|
25
|
-
body = eventDoc.body;
|
26
|
-
return original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
|
27
|
-
},
|
28
|
-
pageY : function (original) {
|
29
|
-
var eventDoc = this.target.ownerDocument || document;
|
30
|
-
doc = eventDoc.documentElement;
|
31
|
-
body = eventDoc.body;
|
32
|
-
return original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );
|
33
|
-
},
|
34
|
-
relatedTarget : function (original) {
|
35
|
-
if(!original) {
|
36
|
-
return;
|
37
|
-
}
|
38
|
-
return original.fromElement === this.target ? original.toElement : original.fromElement;
|
39
|
-
},
|
40
|
-
metaKey : function (originalEvent) {
|
41
|
-
return originalEvent.ctrlKey;
|
42
|
-
},
|
43
|
-
which : function (original) {
|
44
|
-
return original.charCode != null ? original.charCode : original.keyCode;
|
45
|
-
}
|
46
|
-
};
|
47
|
-
|
48
|
-
// Get all properties that should be mapped
|
49
|
-
jQuery.each(jQuery.event.keyHooks.props.concat(jQuery.event.mouseHooks.props).concat(jQuery.event.props), function (i, prop) {
|
50
|
-
if (prop !== "target") {
|
51
|
-
(function () {
|
52
|
-
Object.defineProperty(jQuery.Event.prototype, prop, {
|
53
|
-
get : function () {
|
54
|
-
// get the original value, undefined when there is no original event
|
55
|
-
var originalValue = this.originalEvent && this.originalEvent[prop];
|
56
|
-
// overwrite getter lookup
|
57
|
-
return this['_' + prop] !== undefined ? this['_' + prop] : set(this, prop,
|
58
|
-
// if we have a special function and no value
|
59
|
-
special[prop] && originalValue === undefined ?
|
60
|
-
// call the special function
|
61
|
-
special[prop].call(this, this.originalEvent) :
|
62
|
-
// use the original value
|
63
|
-
originalValue)
|
64
|
-
},
|
65
|
-
set : function (newValue) {
|
66
|
-
// Set the property with underscore prefix
|
67
|
-
this['_' + prop] = newValue;
|
68
|
-
}
|
69
|
-
});
|
70
|
-
})();
|
71
|
-
}
|
72
|
-
});
|
73
|
-
|
74
|
-
jQuery.event.fix = function (event) {
|
75
|
-
if (event[ jQuery.expando ]) {
|
76
|
-
return event;
|
77
|
-
}
|
78
|
-
// Create a jQuery event with at minimum a target and type set
|
79
|
-
var originalEvent = event,
|
80
|
-
event = jQuery.Event(originalEvent);
|
81
|
-
event.target = originalEvent.target;
|
82
|
-
// Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)
|
83
|
-
if (!event.target) {
|
84
|
-
event.target = originalEvent.srcElement || document;
|
85
|
-
}
|
86
|
-
|
87
|
-
// Target should not be a text node (#504, Safari)
|
88
|
-
if (event.target.nodeType === 3) {
|
89
|
-
event.target = event.target.parentNode;
|
90
|
-
}
|
91
|
-
|
92
|
-
return event;
|
93
|
-
}
|
94
|
-
}
|
95
|
-
})(jQuery)
|
@@ -1,266 +0,0 @@
|
|
1
|
-
// Dependencies:
|
2
|
-
//
|
3
|
-
// - jquery.event.hover.js
|
4
|
-
// - jquery.event.livehack.js
|
5
|
-
|
6
|
-
(function($){
|
7
|
-
/**
|
8
|
-
* @class jQuery.Hover
|
9
|
-
* @plugin jquery/event/hover
|
10
|
-
* @download http://jmvcsite.heroku.com/pluginify?plugins[]=jquery/event/hover/hover.js
|
11
|
-
* @parent jQuery.event.hover
|
12
|
-
*
|
13
|
-
* Creates a new hover. The constructor should not be called directly.
|
14
|
-
*
|
15
|
-
* An instance of `$.Hover` is passed as the second argument to each
|
16
|
-
* [jQuery.event.hover] event handler:
|
17
|
-
*
|
18
|
-
* $('#menu').on("hoverinit", function(ev, hover) {
|
19
|
-
* // Set the hover distance to 20px
|
20
|
-
* hover.distance(20);
|
21
|
-
* });
|
22
|
-
*/
|
23
|
-
$.Hover = function(){
|
24
|
-
this._delay = $.Hover.delay;
|
25
|
-
this._distance = $.Hover.distance;
|
26
|
-
this._leave = $.Hover.leave
|
27
|
-
};
|
28
|
-
/**
|
29
|
-
* @Static
|
30
|
-
*/
|
31
|
-
$.extend($.Hover,{
|
32
|
-
/**
|
33
|
-
* @attribute delay
|
34
|
-
*
|
35
|
-
* `$.Hover.delay` is the delay (in milliseconds) after which the hover is
|
36
|
-
* activated by default.
|
37
|
-
*
|
38
|
-
* Set this value as a global default. The default is 100ms.
|
39
|
-
*
|
40
|
-
* // Set the global hover delay to 1 second
|
41
|
-
* $.Hover.delay = 1000;
|
42
|
-
*/
|
43
|
-
delay: 100,
|
44
|
-
/**
|
45
|
-
* @attribute distance
|
46
|
-
*
|
47
|
-
* `$.Hover.distance` is the maximum distance (in pixels) that the mouse is allowed to
|
48
|
-
* travel within the time of [jQuery.Hover.delay] in order to activate a hover.
|
49
|
-
*
|
50
|
-
* Set this value as a global default. The default is 10px.
|
51
|
-
*
|
52
|
-
* // Set the global hover distance to 1 pixel
|
53
|
-
* $.Hover.distance = 1;
|
54
|
-
*/
|
55
|
-
distance: 10,
|
56
|
-
leave : 0
|
57
|
-
})
|
58
|
-
|
59
|
-
/**
|
60
|
-
* @Prototype
|
61
|
-
*/
|
62
|
-
$.extend($.Hover.prototype,{
|
63
|
-
/**
|
64
|
-
* `hover.delay(time)` sets the delay (in ms) for this hover.
|
65
|
-
* This method should only be used in [jQuery.event.hover.hoverinit hoverinit]:
|
66
|
-
*
|
67
|
-
* $('.hoverable').on('hoverinit', function(ev, hover) {
|
68
|
-
* // Set the delay to 500ms
|
69
|
-
* hover.delay(500);
|
70
|
-
* });
|
71
|
-
*
|
72
|
-
* @param {Number} delay the number of milliseconds used to determine a hover
|
73
|
-
* @return {$.Hover} The hover object
|
74
|
-
*/
|
75
|
-
delay: function( delay ) {
|
76
|
-
this._delay = delay;
|
77
|
-
return this;
|
78
|
-
},
|
79
|
-
/**
|
80
|
-
* `hover.distance(px) sets the maximum distance (in pixels) the mouse is allowed to travel in order to activate
|
81
|
-
* the hover. This method should only be used in [jQuery.event.hover.hoverinit hoverinit]:
|
82
|
-
*
|
83
|
-
* $('.hoverable').on('hoverinit', function(ev, hover) {
|
84
|
-
* // Set the distance to 1px
|
85
|
-
* hover.distance(1);
|
86
|
-
* });
|
87
|
-
*
|
88
|
-
* @param {Number} distance the max distance in pixels a mouse can move to be considered a hover
|
89
|
-
* @return {$.Hover} The hover object
|
90
|
-
*/
|
91
|
-
distance: function( distance ) {
|
92
|
-
this._distance = distance;
|
93
|
-
return this;
|
94
|
-
},
|
95
|
-
/**
|
96
|
-
* `hover.leave(delay)` sets a delay for how long the hover should stay active after the mouse left.
|
97
|
-
* This method should only be used in [jQuery.event.hover.hoverinit hoverinit]:
|
98
|
-
*
|
99
|
-
* $('.hoverable').on('hoverinit', function(ev, hover) {
|
100
|
-
* // Stay active for another second after the mouse left
|
101
|
-
* hover.leave(1000);
|
102
|
-
* });
|
103
|
-
*
|
104
|
-
* @param {Number} delay the number of milliseconds the hover should stay active after the mouse leaves
|
105
|
-
* @return {$.Hover} The hover object
|
106
|
-
*/
|
107
|
-
leave : function(leave){
|
108
|
-
this._leave = leave;
|
109
|
-
return this;
|
110
|
-
}
|
111
|
-
})
|
112
|
-
var event = $.event,
|
113
|
-
handle = event.handle,
|
114
|
-
onmouseenter = function(ev){
|
115
|
-
// now start checking mousemoves to update location
|
116
|
-
var delegate = ev.delegateTarget || ev.currentTarget;
|
117
|
-
var selector = ev.handleObj.selector;
|
118
|
-
// prevents another mouseenter until current has run its course
|
119
|
-
if($.data(delegate,"_hover"+selector)) {
|
120
|
-
return;
|
121
|
-
}
|
122
|
-
$.data(delegate,"_hover"+selector, true)
|
123
|
-
var loc = {
|
124
|
-
pageX : ev.pageX,
|
125
|
-
pageY : ev.pageY
|
126
|
-
},
|
127
|
-
// The current distance
|
128
|
-
dist = 0,
|
129
|
-
// Timer that checks for the distance travelled
|
130
|
-
timer,
|
131
|
-
enteredEl = this,
|
132
|
-
// If we are hovered
|
133
|
-
hovered = false,
|
134
|
-
// The previous event
|
135
|
-
lastEv = ev,
|
136
|
-
// The $.Hover instance passed to events
|
137
|
-
hover = new $.Hover(),
|
138
|
-
// timer if hover.leave has been called
|
139
|
-
leaveTimer,
|
140
|
-
// Callback for triggering hoverleave
|
141
|
-
callHoverLeave = function(){
|
142
|
-
$.each(event.find(delegate, ["hoverleave"], selector), function(){
|
143
|
-
this.call(enteredEl, ev, hover)
|
144
|
-
})
|
145
|
-
cleanUp();
|
146
|
-
},
|
147
|
-
mousemove = function(ev){
|
148
|
-
clearTimeout(leaveTimer);
|
149
|
-
// Update the distance and location
|
150
|
-
dist += Math.pow( ev.pageX-loc.pageX, 2 ) + Math.pow( ev.pageY-loc.pageY, 2 );
|
151
|
-
loc = {
|
152
|
-
pageX : ev.pageX,
|
153
|
-
pageY : ev.pageY
|
154
|
-
}
|
155
|
-
lastEv = ev
|
156
|
-
},
|
157
|
-
mouseleave = function(ev){
|
158
|
-
clearTimeout(timer);
|
159
|
-
if(hovered) {
|
160
|
-
// go right away
|
161
|
-
if(hover._leave === 0){
|
162
|
-
callHoverLeave();
|
163
|
-
}else{
|
164
|
-
clearTimeout(leaveTimer);
|
165
|
-
// leave the hover after the time set in hover.leave(time)
|
166
|
-
leaveTimer = setTimeout(function(){
|
167
|
-
callHoverLeave();
|
168
|
-
}, hover._leave)
|
169
|
-
}
|
170
|
-
}else{
|
171
|
-
cleanUp();
|
172
|
-
}
|
173
|
-
},
|
174
|
-
cleanUp = function(){
|
175
|
-
// Unbind all events and data
|
176
|
-
$(enteredEl).unbind("mouseleave",mouseleave)
|
177
|
-
$(enteredEl).unbind("mousemove",mousemove);
|
178
|
-
$.removeData(delegate,"_hover"+selector)
|
179
|
-
};
|
180
|
-
|
181
|
-
// Bind the mousemove event
|
182
|
-
$(enteredEl).bind("mousemove",mousemove).bind("mouseleave", mouseleave);
|
183
|
-
// call hoverinit for each element with the hover instance
|
184
|
-
$.each(event.find(delegate, ["hoverinit"], selector), function(){
|
185
|
-
this.call(enteredEl, ev, hover)
|
186
|
-
})
|
187
|
-
|
188
|
-
timer = setTimeout(function(){
|
189
|
-
// check that we aren't moving around
|
190
|
-
if(dist < hover._distance && $(enteredEl).queue().length == 0){
|
191
|
-
$.each(event.find(delegate, ["hoverenter"], selector), function(){
|
192
|
-
this.call(enteredEl, lastEv, hover)
|
193
|
-
})
|
194
|
-
hovered = true;
|
195
|
-
return;
|
196
|
-
}else{
|
197
|
-
// Reset distance and timer
|
198
|
-
dist = 0;
|
199
|
-
timer = setTimeout(arguments.callee, hover._delay)
|
200
|
-
}
|
201
|
-
}, hover._delay)
|
202
|
-
|
203
|
-
};
|
204
|
-
|
205
|
-
/**
|
206
|
-
* @add jQuery.event.special
|
207
|
-
*/
|
208
|
-
// Attach events
|
209
|
-
event.setupHelper( [
|
210
|
-
/**
|
211
|
-
* @attribute hoverinit
|
212
|
-
* @parent jQuery.event.hover
|
213
|
-
*
|
214
|
-
* `hoverinit` is called when a hover is about to start (on `mouseenter`). Listen for `hoverinit` events to configure
|
215
|
-
* [jQuery.Hover::delay delay] and [jQuery.Hover::distance distance]
|
216
|
-
* for this specific event:
|
217
|
-
*
|
218
|
-
* $(".option").on("hoverinit", function(ev, hover){
|
219
|
-
* //set the distance to 10px
|
220
|
-
* hover.distance(10);
|
221
|
-
* //set the delay to 200ms
|
222
|
-
* hover.delay(10);
|
223
|
-
* // End the hover one second after the mouse leaves
|
224
|
-
* hover.leave(1000);
|
225
|
-
* })
|
226
|
-
*/
|
227
|
-
"hoverinit",
|
228
|
-
/**
|
229
|
-
* @attribute hoverenter
|
230
|
-
* @parent jQuery.event.hover
|
231
|
-
*
|
232
|
-
* `hoverenter` events are called when the mouses less than [jQuery.Hover.prototype.distance] pixels in
|
233
|
-
* [jQuery.Hover.prototype.delay delay] milliseconds.
|
234
|
-
*
|
235
|
-
* $(".option").on("hoverenter", function(ev, hover){
|
236
|
-
* $(this).addClass("hovering");
|
237
|
-
* })
|
238
|
-
*/
|
239
|
-
"hoverenter",
|
240
|
-
/**
|
241
|
-
* @attribute hoverleave
|
242
|
-
* @parent jQuery.event.hover
|
243
|
-
*
|
244
|
-
* `hoverleave` is called when the mouse leaves an element that has been hovered.
|
245
|
-
*
|
246
|
-
* $(".option").on("hoverleave", function(ev, hover){
|
247
|
-
* $(this).removeClass("hovering");
|
248
|
-
* })
|
249
|
-
*/
|
250
|
-
"hoverleave",
|
251
|
-
/**
|
252
|
-
* @attribute hovermove
|
253
|
-
* @parent jQuery.event.hover
|
254
|
-
*
|
255
|
-
* `hovermove` is called when a `mousemove` occurs on an element that has been hovered.
|
256
|
-
*
|
257
|
-
* $(".option").on("hovermove", function(ev, hover){
|
258
|
-
* // not sure why you would want to listen for this
|
259
|
-
* // but we provide it just in case
|
260
|
-
* })
|
261
|
-
*/
|
262
|
-
"hovermove"], "mouseenter", onmouseenter )
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
})(jQuery)
|
@@ -1,156 +0,0 @@
|
|
1
|
-
// - jquery.event.key.js
|
2
|
-
(function($){
|
3
|
-
var keymap = {},
|
4
|
-
reverseKeyMap = {},
|
5
|
-
currentBrowser = jQuery.uaMatch(navigator.userAgent).browser;
|
6
|
-
|
7
|
-
/**
|
8
|
-
* @hide
|
9
|
-
* @parent jQuery.Event.prototype.key
|
10
|
-
*
|
11
|
-
* Allows you to set alternate key maps or overwrite existing key codes.
|
12
|
-
* For example::
|
13
|
-
*
|
14
|
-
* $.event.key({"~" : 177});
|
15
|
-
*
|
16
|
-
* @param {Object} map A map of character - keycode pairs.
|
17
|
-
*/
|
18
|
-
$.event.key = function(browser, map){
|
19
|
-
if(browser === undefined) {
|
20
|
-
return keymap;
|
21
|
-
}
|
22
|
-
|
23
|
-
if(map === undefined) {
|
24
|
-
map = browser;
|
25
|
-
browser = currentBrowser;
|
26
|
-
}
|
27
|
-
|
28
|
-
// extend the keymap
|
29
|
-
if(!keymap[browser]) {
|
30
|
-
keymap[browser] = {};
|
31
|
-
}
|
32
|
-
$.extend(keymap[browser], map);
|
33
|
-
// and also update the reverse keymap
|
34
|
-
if(!reverseKeyMap[browser]) {
|
35
|
-
reverseKeyMap[browser] = {};
|
36
|
-
}
|
37
|
-
for(var name in map){
|
38
|
-
reverseKeyMap[browser][map[name]] = name;
|
39
|
-
}
|
40
|
-
};
|
41
|
-
|
42
|
-
$.event.key({
|
43
|
-
// backspace
|
44
|
-
'\b':'8',
|
45
|
-
|
46
|
-
// tab
|
47
|
-
'\t':'9',
|
48
|
-
|
49
|
-
// enter
|
50
|
-
'\r':'13',
|
51
|
-
|
52
|
-
// special
|
53
|
-
'shift':'16','ctrl':'17','alt':'18',
|
54
|
-
|
55
|
-
// others
|
56
|
-
'pause-break':'19',
|
57
|
-
'caps':'20',
|
58
|
-
'escape':'27',
|
59
|
-
'num-lock':'144',
|
60
|
-
'scroll-lock':'145',
|
61
|
-
'print' : '44',
|
62
|
-
|
63
|
-
// navigation
|
64
|
-
'page-up':'33','page-down':'34','end':'35','home':'36',
|
65
|
-
'left':'37','up':'38','right':'39','down':'40','insert':'45','delete':'46',
|
66
|
-
|
67
|
-
// normal characters
|
68
|
-
' ':'32',
|
69
|
-
'0':'48','1':'49','2':'50','3':'51','4':'52','5':'53','6':'54','7':'55','8':'56','9':'57',
|
70
|
-
'a':'65','b':'66','c':'67','d':'68','e':'69','f':'70','g':'71','h':'72','i':'73','j':'74','k':'75','l':'76','m':'77',
|
71
|
-
'n':'78','o':'79','p':'80','q':'81','r':'82','s':'83','t':'84','u':'85','v':'86','w':'87','x':'88','y':'89','z':'90',
|
72
|
-
// normal-characters, numpad
|
73
|
-
'num0':'96','num1':'97','num2':'98','num3':'99','num4':'100','num5':'101','num6':'102','num7':'103','num8':'104','num9':'105',
|
74
|
-
'*':'106','+':'107','-':'109','.':'110',
|
75
|
-
// normal-characters, others
|
76
|
-
'/':'111',
|
77
|
-
';':'186',
|
78
|
-
'=':'187',
|
79
|
-
',':'188',
|
80
|
-
'-':'189',
|
81
|
-
'.':'190',
|
82
|
-
'/':'191',
|
83
|
-
'`':'192',
|
84
|
-
'[':'219',
|
85
|
-
'\\':'220',
|
86
|
-
']':'221',
|
87
|
-
"'":'222',
|
88
|
-
|
89
|
-
// ignore these, you shouldn't use them
|
90
|
-
'left window key':'91','right window key':'92','select key':'93',
|
91
|
-
|
92
|
-
|
93
|
-
'f1':'112','f2':'113','f3':'114','f4':'115','f5':'116','f6':'117',
|
94
|
-
'f7':'118','f8':'119','f9':'120','f10':'121','f11':'122','f12':'123'
|
95
|
-
});
|
96
|
-
|
97
|
-
/**
|
98
|
-
* @parent jQuery.event.key
|
99
|
-
* @plugin jquery/event/key
|
100
|
-
* @function jQuery.Event.prototype.keyName
|
101
|
-
*
|
102
|
-
* Returns a string representation of the key pressed:
|
103
|
-
*
|
104
|
-
* $("input").on('keypress', function(ev){
|
105
|
-
* if(ev.keyName() == 'ctrl') {
|
106
|
-
* $(this).addClass('highlight');
|
107
|
-
* }
|
108
|
-
* });
|
109
|
-
*
|
110
|
-
* The key names mapped by default can be found in the [jQuery.event.key jQuery.event.key overview].
|
111
|
-
*
|
112
|
-
* @return {String} The string representation of of the key pressed.
|
113
|
-
*/
|
114
|
-
jQuery.Event.prototype.keyName = function(){
|
115
|
-
var event = this,
|
116
|
-
test = /\w/,
|
117
|
-
// It can be either keyCode or charCode.
|
118
|
-
// Look both cases up in the reverse key map and converted to a string
|
119
|
-
key_Key = reverseKeyMap[currentBrowser][(event.keyCode || event.which)+""],
|
120
|
-
char_Key = String.fromCharCode(event.keyCode || event.which),
|
121
|
-
key_Char = event.charCode && reverseKeyMap[currentBrowser][event.charCode+""],
|
122
|
-
char_Char = event.charCode && String.fromCharCode(event.charCode);
|
123
|
-
|
124
|
-
if( char_Char && test.test(char_Char) ) {
|
125
|
-
// string representation of event.charCode
|
126
|
-
return char_Char.toLowerCase()
|
127
|
-
}
|
128
|
-
if( key_Char && test.test(key_Char) ) {
|
129
|
-
// reverseKeyMap representation of event.charCode
|
130
|
-
return char_Char.toLowerCase()
|
131
|
-
}
|
132
|
-
if( char_Key && test.test(char_Key) ) {
|
133
|
-
// string representation of event.keyCode
|
134
|
-
return char_Key.toLowerCase()
|
135
|
-
}
|
136
|
-
if( key_Key && test.test(key_Key) ) {
|
137
|
-
// reverseKeyMap representation of event.keyCode
|
138
|
-
return key_Key.toLowerCase()
|
139
|
-
}
|
140
|
-
|
141
|
-
if (event.type == 'keypress'){
|
142
|
-
// keypress doesn't capture everything
|
143
|
-
return event.keyCode ? String.fromCharCode(event.keyCode) : String.fromCharCode(event.which)
|
144
|
-
}
|
145
|
-
|
146
|
-
if (!event.keyCode && event.which) {
|
147
|
-
// event.which
|
148
|
-
return String.fromCharCode(event.which)
|
149
|
-
}
|
150
|
-
|
151
|
-
// default
|
152
|
-
return reverseKeyMap[currentBrowser][event.keyCode+""]
|
153
|
-
}
|
154
|
-
|
155
|
-
|
156
|
-
})(jQuery)
|