loco-rails 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/generators/loco/js_assets_structure/js_assets_structure_generator.rb +1 -1
- data/lib/loco/version.rb +1 -1
- data/test/dummy/bower.json +3 -3
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +914 -0
- data/test/dummy/log/test.log +14364 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1-WO2UjmfLs4SpjVZdSJGGMzBEsVGyxycwsDwVEQj1k.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1lwmN4qs8MJAzC_yfG97s_SBsqDZ7S3tjAhKpSGRoPk.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2W9ni6toILqWfZF81i5tLooI3KkJgLMV2Um69h4tACE.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/888aULOiH1o8nErYVbar7so8TSiHMnVRkCJVrsFow-8.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/C2zMBdauRoyKtP5-Hbx-3FKU63Wir8HxxhnsEQjnye4.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KmN1A2cbnIa89JVXdNUnbxekW6XoG37uQ7TOrUmla6M.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/N2LaSeSkH9O3-nDAwbgQ3fvF1RyzULzIdW9tRkCFdiE.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NMX4CbiSfseLfHWah6QjF3ka-_q8iZ35lDHxpx5HZBc.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/O97vuogdZekuQD9891VkdZtj2Ah9a6j_9SdFgHpRZPk.cache +3 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/RgNfOjSuRN575tirFTi553UywDtiZquNSKAUN4t_37E.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/URfsWTq0WfX5JFf50HidIK1kGXYILlI3krzHQOlpGFw.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UqKz2K55R9dWSo9wYoLdN5lxNUXJFqA_7eipeyHMqQc.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WspjnlaWGkNP36-eIBusMx-VcvbF81RZ3L495DxSNNg.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XUYO10EzvYAECtPUgdBF8rPWs9x6tndCxSwdhYWmDpQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ckF-gg5mdNyYLK2tDms9BdsP1vFw5VYxZ11u7l8vzfc.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/cxoptH0sPRJzPLP351ISNHPjig_W2A_-5fLVnK3tFu0.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/k5GkEt2yH5INFBgLUTsGEmzjRr5Ngh6FiXYfmbqh-Tg.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zIWnum7SG2OPux4uomf0kHpIZ5Nl1NfTAoHCdkHwZIY.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zgdP9EhEWd05XIYSWZx4uQKkuRklpRj6KiShg6HqIRo.cache +0 -0
- data/test/dummy/vendor/assets/bower_components/jquery/AUTHORS.txt +53 -24
- data/test/dummy/vendor/assets/bower_components/jquery/dist/core.js +481 -0
- data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.js +2706 -3647
- data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.min.js +4 -5
- data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.min.map +1 -1
- data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.slim.js +533 -444
- data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.slim.min.js +4 -4
- data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.slim.min.map +1 -1
- data/test/dummy/vendor/assets/bower_components/jquery/{sizzle → external/sizzle}/LICENSE.txt +0 -0
- data/test/dummy/vendor/assets/bower_components/jquery/{sizzle → external/sizzle}/dist/sizzle.js +154 -80
- data/test/dummy/vendor/assets/bower_components/jquery/external/sizzle/dist/sizzle.min.js +3 -0
- data/test/dummy/vendor/assets/bower_components/jquery/external/sizzle/dist/sizzle.min.map +1 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +5 -3
- data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/load.js +3 -11
- data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +9 -10
- data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/script.js +26 -44
- data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/var/location.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/xhr.js +138 -198
- data/test/dummy/vendor/assets/bower_components/jquery/src/ajax.js +104 -91
- data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/attr.js +23 -167
- data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/classes.js +18 -13
- data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/prop.js +9 -37
- data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/support.js +12 -49
- data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/val.js +21 -28
- data/test/dummy/vendor/assets/bower_components/jquery/src/attributes.js +4 -2
- data/test/dummy/vendor/assets/bower_components/jquery/src/callbacks.js +5 -3
- data/test/dummy/vendor/assets/bower_components/jquery/src/core/DOMEval.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/core/access.js +8 -6
- data/test/dummy/vendor/assets/bower_components/jquery/src/core/init.js +13 -26
- data/test/dummy/vendor/assets/bower_components/jquery/src/core/parseHTML.js +32 -8
- data/test/dummy/vendor/assets/bower_components/jquery/src/core/ready-no-deferred.js +111 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/core/ready.js +32 -100
- data/test/dummy/vendor/assets/bower_components/jquery/src/core/readyException.js +13 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/core/support.js +3 -1
- data/test/dummy/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +2 -1
- data/test/dummy/vendor/assets/bower_components/jquery/src/core.js +71 -119
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/adjustCSS.js +8 -2
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/curCSS.js +34 -112
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +7 -28
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/showHide.js +69 -9
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/support.js +48 -142
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +3 -1
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/isHiddenWithinTree.js +34 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/swap.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/css.js +71 -223
- data/test/dummy/vendor/assets/bower_components/jquery/src/data/Data.js +24 -63
- data/test/dummy/vendor/assets/bower_components/jquery/src/data/var/acceptData.js +11 -12
- data/test/dummy/vendor/assets/bower_components/jquery/src/data/var/dataPriv.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/data/var/dataUser.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/data.js +66 -247
- data/test/dummy/vendor/assets/bower_components/jquery/src/deferred/exceptionHook.js +4 -2
- data/test/dummy/vendor/assets/bower_components/jquery/src/deferred.js +290 -60
- data/test/dummy/vendor/assets/bower_components/jquery/src/deprecated.js +4 -8
- data/test/dummy/vendor/assets/bower_components/jquery/src/dimensions.js +9 -9
- data/test/dummy/vendor/assets/bower_components/jquery/src/effects/Tween.js +11 -9
- data/test/dummy/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +3 -1
- data/test/dummy/vendor/assets/bower_components/jquery/src/effects.js +183 -135
- data/test/dummy/vendor/assets/bower_components/jquery/src/event/ajax.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/event/alias.js +7 -3
- data/test/dummy/vendor/assets/bower_components/jquery/src/event/focusin.js +5 -3
- data/test/dummy/vendor/assets/bower_components/jquery/src/event/support.js +3 -20
- data/test/dummy/vendor/assets/bower_components/jquery/src/event/trigger.js +4 -18
- data/test/dummy/vendor/assets/bower_components/jquery/src/event.js +145 -553
- data/test/dummy/vendor/assets/bower_components/jquery/src/exports/amd.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/exports/global.js +10 -2
- data/test/dummy/vendor/assets/bower_components/jquery/src/jquery.js +4 -1
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/buildFragment.js +22 -75
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/getAll.js +9 -19
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/setGlobalEval.js +11 -8
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/support.js +13 -50
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rscriptType.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rtagName.js +3 -1
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/wrapMap.js +11 -12
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation.js +104 -203
- data/test/dummy/vendor/assets/bower_components/jquery/src/offset.js +64 -51
- data/test/dummy/vendor/assets/bower_components/jquery/src/queue/delay.js +3 -1
- data/test/dummy/vendor/assets/bower_components/jquery/src/queue.js +12 -11
- data/test/dummy/vendor/assets/bower_components/jquery/src/selector-native.js +29 -3
- data/test/dummy/vendor/assets/bower_components/jquery/src/selector-sizzle.js +5 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/selector.js +3 -1
- data/test/dummy/vendor/assets/bower_components/jquery/src/serialize.js +13 -12
- data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +9 -10
- data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/var/dir.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/var/siblings.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/traversing.js +36 -37
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/ObjectFunctionString.js +7 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/arr.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/class2type.js +1 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/concat.js +5 -3
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/document.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/documentElement.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/fnToString.js +7 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/getProto.js +5 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/hasOwn.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/indexOf.js +5 -3
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/pnum.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/push.js +5 -3
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/rcssNum.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/slice.js +5 -3
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/support.js +1 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/toString.js +2 -0
- data/test/dummy/vendor/assets/bower_components/jquery/src/wrap.js +14 -14
- data/test/dummy/vendor/assets/bower_components/lie/bower.json +1 -1
- data/test/dummy/vendor/assets/bower_components/lie/component.json +1 -1
- data/test/dummy/vendor/assets/bower_components/lie/dist/lie.js +80 -80
- data/test/dummy/vendor/assets/bower_components/lie/dist/lie.min.js +1 -1
- data/test/dummy/vendor/assets/bower_components/lie/dist/lie.polyfill.js +9 -9
- data/test/dummy/vendor/assets/bower_components/lie/dist/lie.polyfill.min.js +1 -1
- data/test/dummy/vendor/assets/bower_components/lie/lib/browser.js +253 -0
- data/test/dummy/vendor/assets/bower_components/lie/lib/index.js +5 -5
- data/test/dummy/vendor/assets/bower_components/lie/package.json +28 -19
- data/test/dummy/vendor/assets/bower_components/lie/src/index.js +278 -0
- metadata +62 -36
- data/test/dummy/vendor/assets/bower_components/jquery/sizzle/dist/sizzle.min.js +0 -3
- data/test/dummy/vendor/assets/bower_components/jquery/sizzle/dist/sizzle.min.map +0 -1
- data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +0 -53
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +0 -72
- data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +0 -16
- data/test/dummy/vendor/assets/bower_components/jquery/src/data/accepts.js +0 -20
- data/test/dummy/vendor/assets/bower_components/jquery/src/data/support.js +0 -23
- data/test/dummy/vendor/assets/bower_components/jquery/src/effects/support.js +0 -58
- data/test/dummy/vendor/assets/bower_components/jquery/src/intro.js +0 -44
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/createSafeFragment.js +0 -20
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/nodeNames.js +0 -5
- data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rleadingWhitespace.js +0 -3
- data/test/dummy/vendor/assets/bower_components/jquery/src/outro.js +0 -2
- data/test/dummy/vendor/assets/bower_components/jquery/src/support.js +0 -63
- data/test/dummy/vendor/assets/bower_components/jquery/src/var/deletedIds.js +0 -3
@@ -1,21 +1,20 @@
|
|
1
1
|
define( [
|
2
2
|
"./core",
|
3
3
|
"./var/document",
|
4
|
+
"./var/documentElement",
|
4
5
|
"./var/rnotwhite",
|
5
|
-
"./var/hasOwn",
|
6
6
|
"./var/slice",
|
7
|
-
"./
|
8
|
-
"./data/var/acceptData",
|
7
|
+
"./data/var/dataPriv",
|
9
8
|
|
10
9
|
"./core/init",
|
11
|
-
"./data",
|
12
10
|
"./selector"
|
13
|
-
], function( jQuery, document,
|
11
|
+
], function( jQuery, document, documentElement, rnotwhite, slice, dataPriv ) {
|
14
12
|
|
15
|
-
|
13
|
+
"use strict";
|
14
|
+
|
15
|
+
var
|
16
16
|
rkeyEvent = /^key/,
|
17
17
|
rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
|
18
|
-
rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
|
19
18
|
rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
|
20
19
|
|
21
20
|
function returnTrue() {
|
@@ -26,7 +25,7 @@ function returnFalse() {
|
|
26
25
|
return false;
|
27
26
|
}
|
28
27
|
|
29
|
-
// Support:
|
28
|
+
// Support: IE <=9 only
|
30
29
|
// See #13393 for more info
|
31
30
|
function safeActiveElement() {
|
32
31
|
try {
|
@@ -104,10 +103,11 @@ jQuery.event = {
|
|
104
103
|
global: {},
|
105
104
|
|
106
105
|
add: function( elem, types, handler, data, selector ) {
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
106
|
+
|
107
|
+
var handleObjIn, eventHandle, tmp,
|
108
|
+
events, t, handleObj,
|
109
|
+
special, handlers, type, namespaces, origType,
|
110
|
+
elemData = dataPriv.get( elem );
|
111
111
|
|
112
112
|
// Don't attach events to noData or text/comment nodes (but allow plain objects)
|
113
113
|
if ( !elemData ) {
|
@@ -121,6 +121,12 @@ jQuery.event = {
|
|
121
121
|
selector = handleObjIn.selector;
|
122
122
|
}
|
123
123
|
|
124
|
+
// Ensure that invalid selectors throw exceptions at attach time
|
125
|
+
// Evaluate against documentElement in case elem is a non-element node (e.g., document)
|
126
|
+
if ( selector ) {
|
127
|
+
jQuery.find.matchesSelector( documentElement, selector );
|
128
|
+
}
|
129
|
+
|
124
130
|
// Make sure that the handler has a unique ID, used to find/remove it later
|
125
131
|
if ( !handler.guid ) {
|
126
132
|
handler.guid = jQuery.guid++;
|
@@ -135,15 +141,9 @@ jQuery.event = {
|
|
135
141
|
|
136
142
|
// Discard the second event of a jQuery.event.trigger() and
|
137
143
|
// when an event is called after a page has unloaded
|
138
|
-
return typeof jQuery !== "undefined" &&
|
139
|
-
|
140
|
-
jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
|
141
|
-
undefined;
|
144
|
+
return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
|
145
|
+
jQuery.event.dispatch.apply( elem, arguments ) : undefined;
|
142
146
|
};
|
143
|
-
|
144
|
-
// Add elem as a property of the handle fn to prevent a memory leak
|
145
|
-
// with IE non-native events
|
146
|
-
eventHandle.elem = elem;
|
147
147
|
}
|
148
148
|
|
149
149
|
// Handle multiple events separated by a space
|
@@ -185,16 +185,12 @@ jQuery.event = {
|
|
185
185
|
handlers = events[ type ] = [];
|
186
186
|
handlers.delegateCount = 0;
|
187
187
|
|
188
|
-
// Only use addEventListener
|
188
|
+
// Only use addEventListener if the special events handler returns false
|
189
189
|
if ( !special.setup ||
|
190
190
|
special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
|
191
191
|
|
192
|
-
// Bind the global event handler to the element
|
193
192
|
if ( elem.addEventListener ) {
|
194
|
-
elem.addEventListener( type, eventHandle
|
195
|
-
|
196
|
-
} else if ( elem.attachEvent ) {
|
197
|
-
elem.attachEvent( "on" + type, eventHandle );
|
193
|
+
elem.addEventListener( type, eventHandle );
|
198
194
|
}
|
199
195
|
}
|
200
196
|
}
|
@@ -218,17 +214,15 @@ jQuery.event = {
|
|
218
214
|
jQuery.event.global[ type ] = true;
|
219
215
|
}
|
220
216
|
|
221
|
-
// Nullify elem to prevent memory leaks in IE
|
222
|
-
elem = null;
|
223
217
|
},
|
224
218
|
|
225
219
|
// Detach an event or set of events from an element
|
226
220
|
remove: function( elem, types, handler, selector, mappedTypes ) {
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
namespaces, origType,
|
231
|
-
elemData =
|
221
|
+
|
222
|
+
var j, origCount, tmp,
|
223
|
+
events, t, handleObj,
|
224
|
+
special, handlers, type, namespaces, origType,
|
225
|
+
elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
|
232
226
|
|
233
227
|
if ( !elemData || !( events = elemData.events ) ) {
|
234
228
|
return;
|
@@ -290,174 +284,29 @@ jQuery.event = {
|
|
290
284
|
}
|
291
285
|
}
|
292
286
|
|
293
|
-
// Remove the expando if it's no longer used
|
287
|
+
// Remove data and the expando if it's no longer used
|
294
288
|
if ( jQuery.isEmptyObject( events ) ) {
|
295
|
-
|
296
|
-
|
297
|
-
// removeData also checks for emptiness and clears the expando if empty
|
298
|
-
// so use it instead of delete
|
299
|
-
jQuery._removeData( elem, "events" );
|
300
|
-
}
|
301
|
-
},
|
302
|
-
|
303
|
-
trigger: function( event, data, elem, onlyHandlers ) {
|
304
|
-
var handle, ontype, cur,
|
305
|
-
bubbleType, special, tmp, i,
|
306
|
-
eventPath = [ elem || document ],
|
307
|
-
type = hasOwn.call( event, "type" ) ? event.type : event,
|
308
|
-
namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
|
309
|
-
|
310
|
-
cur = tmp = elem = elem || document;
|
311
|
-
|
312
|
-
// Don't do events on text and comment nodes
|
313
|
-
if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
|
314
|
-
return;
|
315
|
-
}
|
316
|
-
|
317
|
-
// focus/blur morphs to focusin/out; ensure we're not firing them right now
|
318
|
-
if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
|
319
|
-
return;
|
320
|
-
}
|
321
|
-
|
322
|
-
if ( type.indexOf( "." ) > -1 ) {
|
323
|
-
|
324
|
-
// Namespaced trigger; create a regexp to match event type in handle()
|
325
|
-
namespaces = type.split( "." );
|
326
|
-
type = namespaces.shift();
|
327
|
-
namespaces.sort();
|
328
|
-
}
|
329
|
-
ontype = type.indexOf( ":" ) < 0 && "on" + type;
|
330
|
-
|
331
|
-
// Caller can pass in a jQuery.Event object, Object, or just an event type string
|
332
|
-
event = event[ jQuery.expando ] ?
|
333
|
-
event :
|
334
|
-
new jQuery.Event( type, typeof event === "object" && event );
|
335
|
-
|
336
|
-
// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
|
337
|
-
event.isTrigger = onlyHandlers ? 2 : 3;
|
338
|
-
event.namespace = namespaces.join( "." );
|
339
|
-
event.rnamespace = event.namespace ?
|
340
|
-
new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
|
341
|
-
null;
|
342
|
-
|
343
|
-
// Clean up the event in case it is being reused
|
344
|
-
event.result = undefined;
|
345
|
-
if ( !event.target ) {
|
346
|
-
event.target = elem;
|
347
|
-
}
|
348
|
-
|
349
|
-
// Clone any incoming data and prepend the event, creating the handler arg list
|
350
|
-
data = data == null ?
|
351
|
-
[ event ] :
|
352
|
-
jQuery.makeArray( data, [ event ] );
|
353
|
-
|
354
|
-
// Allow special events to draw outside the lines
|
355
|
-
special = jQuery.event.special[ type ] || {};
|
356
|
-
if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
|
357
|
-
return;
|
358
|
-
}
|
359
|
-
|
360
|
-
// Determine event propagation path in advance, per W3C events spec (#9951)
|
361
|
-
// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
|
362
|
-
if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
|
363
|
-
|
364
|
-
bubbleType = special.delegateType || type;
|
365
|
-
if ( !rfocusMorph.test( bubbleType + type ) ) {
|
366
|
-
cur = cur.parentNode;
|
367
|
-
}
|
368
|
-
for ( ; cur; cur = cur.parentNode ) {
|
369
|
-
eventPath.push( cur );
|
370
|
-
tmp = cur;
|
371
|
-
}
|
372
|
-
|
373
|
-
// Only add window if we got to document (e.g., not plain obj or detached DOM)
|
374
|
-
if ( tmp === ( elem.ownerDocument || document ) ) {
|
375
|
-
eventPath.push( tmp.defaultView || tmp.parentWindow || window );
|
376
|
-
}
|
377
|
-
}
|
378
|
-
|
379
|
-
// Fire handlers on the event path
|
380
|
-
i = 0;
|
381
|
-
while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
|
382
|
-
|
383
|
-
event.type = i > 1 ?
|
384
|
-
bubbleType :
|
385
|
-
special.bindType || type;
|
386
|
-
|
387
|
-
// jQuery handler
|
388
|
-
handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] &&
|
389
|
-
jQuery._data( cur, "handle" );
|
390
|
-
|
391
|
-
if ( handle ) {
|
392
|
-
handle.apply( cur, data );
|
393
|
-
}
|
394
|
-
|
395
|
-
// Native handler
|
396
|
-
handle = ontype && cur[ ontype ];
|
397
|
-
if ( handle && handle.apply && acceptData( cur ) ) {
|
398
|
-
event.result = handle.apply( cur, data );
|
399
|
-
if ( event.result === false ) {
|
400
|
-
event.preventDefault();
|
401
|
-
}
|
402
|
-
}
|
403
|
-
}
|
404
|
-
event.type = type;
|
405
|
-
|
406
|
-
// If nobody prevented the default action, do it now
|
407
|
-
if ( !onlyHandlers && !event.isDefaultPrevented() ) {
|
408
|
-
|
409
|
-
if (
|
410
|
-
( !special._default ||
|
411
|
-
special._default.apply( eventPath.pop(), data ) === false
|
412
|
-
) && acceptData( elem )
|
413
|
-
) {
|
414
|
-
|
415
|
-
// Call a native DOM method on the target with the same name name as the event.
|
416
|
-
// Can't use an .isFunction() check here because IE6/7 fails that test.
|
417
|
-
// Don't do default actions on window, that's where global variables be (#6170)
|
418
|
-
if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {
|
419
|
-
|
420
|
-
// Don't re-trigger an onFOO event when we call its FOO() method
|
421
|
-
tmp = elem[ ontype ];
|
422
|
-
|
423
|
-
if ( tmp ) {
|
424
|
-
elem[ ontype ] = null;
|
425
|
-
}
|
426
|
-
|
427
|
-
// Prevent re-triggering of the same event, since we already bubbled it above
|
428
|
-
jQuery.event.triggered = type;
|
429
|
-
try {
|
430
|
-
elem[ type ]();
|
431
|
-
} catch ( e ) {
|
432
|
-
|
433
|
-
// IE<9 dies on focus/blur to hidden element (#1486,#12518)
|
434
|
-
// only reproducible on winXP IE8 native, not IE9 in IE8 mode
|
435
|
-
}
|
436
|
-
jQuery.event.triggered = undefined;
|
437
|
-
|
438
|
-
if ( tmp ) {
|
439
|
-
elem[ ontype ] = tmp;
|
440
|
-
}
|
441
|
-
}
|
442
|
-
}
|
289
|
+
dataPriv.remove( elem, "handle events" );
|
443
290
|
}
|
444
|
-
|
445
|
-
return event.result;
|
446
291
|
},
|
447
292
|
|
448
|
-
dispatch: function(
|
293
|
+
dispatch: function( nativeEvent ) {
|
449
294
|
|
450
295
|
// Make a writable jQuery.Event from the native event object
|
451
|
-
event = jQuery.event.fix(
|
296
|
+
var event = jQuery.event.fix( nativeEvent );
|
452
297
|
|
453
|
-
var i, j, ret, matched, handleObj,
|
454
|
-
|
455
|
-
|
456
|
-
handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [],
|
298
|
+
var i, j, ret, matched, handleObj, handlerQueue,
|
299
|
+
args = new Array( arguments.length ),
|
300
|
+
handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
|
457
301
|
special = jQuery.event.special[ event.type ] || {};
|
458
302
|
|
459
303
|
// Use the fix-ed jQuery.Event rather than the (read-only) native event
|
460
304
|
args[ 0 ] = event;
|
305
|
+
|
306
|
+
for ( i = 1; i < arguments.length; i++ ) {
|
307
|
+
args[ i ] = arguments[ i ];
|
308
|
+
}
|
309
|
+
|
461
310
|
event.delegateTarget = this;
|
462
311
|
|
463
312
|
// Call the preDispatch hook for the mapped type, and let it bail if desired
|
@@ -511,18 +360,16 @@ jQuery.event = {
|
|
511
360
|
delegateCount = handlers.delegateCount,
|
512
361
|
cur = event.target;
|
513
362
|
|
514
|
-
// Support
|
363
|
+
// Support: IE <=9
|
515
364
|
// Find delegate handlers
|
516
365
|
// Black-hole SVG <use> instance trees (#13180)
|
517
366
|
//
|
518
|
-
// Support: Firefox<=42
|
367
|
+
// Support: Firefox <=42
|
519
368
|
// Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)
|
520
369
|
if ( delegateCount && cur.nodeType &&
|
521
370
|
( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) {
|
522
371
|
|
523
|
-
|
524
|
-
for ( ; cur != this; cur = cur.parentNode || this ) {
|
525
|
-
/* jshint eqeqeq: true */
|
372
|
+
for ( ; cur !== this; cur = cur.parentNode || this ) {
|
526
373
|
|
527
374
|
// Don't check non-elements (#13208)
|
528
375
|
// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
|
@@ -558,108 +405,38 @@ jQuery.event = {
|
|
558
405
|
return handlerQueue;
|
559
406
|
},
|
560
407
|
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
// Create a writable copy of the event object and normalize some properties
|
567
|
-
var i, prop, copy,
|
568
|
-
type = event.type,
|
569
|
-
originalEvent = event,
|
570
|
-
fixHook = this.fixHooks[ type ];
|
571
|
-
|
572
|
-
if ( !fixHook ) {
|
573
|
-
this.fixHooks[ type ] = fixHook =
|
574
|
-
rmouseEvent.test( type ) ? this.mouseHooks :
|
575
|
-
rkeyEvent.test( type ) ? this.keyHooks :
|
576
|
-
{};
|
577
|
-
}
|
578
|
-
copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
|
579
|
-
|
580
|
-
event = new jQuery.Event( originalEvent );
|
581
|
-
|
582
|
-
i = copy.length;
|
583
|
-
while ( i-- ) {
|
584
|
-
prop = copy[ i ];
|
585
|
-
event[ prop ] = originalEvent[ prop ];
|
586
|
-
}
|
587
|
-
|
588
|
-
// Support: IE<9
|
589
|
-
// Fix target property (#1925)
|
590
|
-
if ( !event.target ) {
|
591
|
-
event.target = originalEvent.srcElement || document;
|
592
|
-
}
|
408
|
+
addProp: function( name, hook ) {
|
409
|
+
Object.defineProperty( jQuery.Event.prototype, name, {
|
410
|
+
enumerable: true,
|
411
|
+
configurable: true,
|
593
412
|
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
keyHooks: {
|
614
|
-
props: "char charCode key keyCode".split( " " ),
|
615
|
-
filter: function( event, original ) {
|
616
|
-
|
617
|
-
// Add which for key events
|
618
|
-
if ( event.which == null ) {
|
619
|
-
event.which = original.charCode != null ? original.charCode : original.keyCode;
|
413
|
+
get: jQuery.isFunction( hook ) ?
|
414
|
+
function() {
|
415
|
+
if ( this.originalEvent ) {
|
416
|
+
return hook( this.originalEvent );
|
417
|
+
}
|
418
|
+
} :
|
419
|
+
function() {
|
420
|
+
if ( this.originalEvent ) {
|
421
|
+
return this.originalEvent[ name ];
|
422
|
+
}
|
423
|
+
},
|
424
|
+
|
425
|
+
set: function( value ) {
|
426
|
+
Object.defineProperty( this, name, {
|
427
|
+
enumerable: true,
|
428
|
+
configurable: true,
|
429
|
+
writable: true,
|
430
|
+
value: value
|
431
|
+
} );
|
620
432
|
}
|
621
|
-
|
622
|
-
return event;
|
623
|
-
}
|
433
|
+
} );
|
624
434
|
},
|
625
435
|
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
var body, eventDoc, doc,
|
631
|
-
button = original.button,
|
632
|
-
fromElement = original.fromElement;
|
633
|
-
|
634
|
-
// Calculate pageX/Y if missing and clientX/Y available
|
635
|
-
if ( event.pageX == null && original.clientX != null ) {
|
636
|
-
eventDoc = event.target.ownerDocument || document;
|
637
|
-
doc = eventDoc.documentElement;
|
638
|
-
body = eventDoc.body;
|
639
|
-
|
640
|
-
event.pageX = original.clientX +
|
641
|
-
( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -
|
642
|
-
( doc && doc.clientLeft || body && body.clientLeft || 0 );
|
643
|
-
event.pageY = original.clientY +
|
644
|
-
( doc && doc.scrollTop || body && body.scrollTop || 0 ) -
|
645
|
-
( doc && doc.clientTop || body && body.clientTop || 0 );
|
646
|
-
}
|
647
|
-
|
648
|
-
// Add relatedTarget, if necessary
|
649
|
-
if ( !event.relatedTarget && fromElement ) {
|
650
|
-
event.relatedTarget = fromElement === event.target ?
|
651
|
-
original.toElement :
|
652
|
-
fromElement;
|
653
|
-
}
|
654
|
-
|
655
|
-
// Add which for click: 1 === left; 2 === middle; 3 === right
|
656
|
-
// Note: button is not normalized, so don't use it
|
657
|
-
if ( !event.which && button !== undefined ) {
|
658
|
-
event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
|
659
|
-
}
|
660
|
-
|
661
|
-
return event;
|
662
|
-
}
|
436
|
+
fix: function( originalEvent ) {
|
437
|
+
return originalEvent[ jQuery.expando ] ?
|
438
|
+
originalEvent :
|
439
|
+
new jQuery.Event( originalEvent );
|
663
440
|
},
|
664
441
|
|
665
442
|
special: {
|
@@ -673,15 +450,8 @@ jQuery.event = {
|
|
673
450
|
// Fire native event if possible so blur/focus sequence is correct
|
674
451
|
trigger: function() {
|
675
452
|
if ( this !== safeActiveElement() && this.focus ) {
|
676
|
-
|
677
|
-
|
678
|
-
return false;
|
679
|
-
} catch ( e ) {
|
680
|
-
|
681
|
-
// Support: IE<9
|
682
|
-
// If we error on focus to hidden element (#1486, #12518),
|
683
|
-
// let .trigger() run the handlers
|
684
|
-
}
|
453
|
+
this.focus();
|
454
|
+
return false;
|
685
455
|
}
|
686
456
|
},
|
687
457
|
delegateType: "focusin"
|
@@ -699,7 +469,7 @@ jQuery.event = {
|
|
699
469
|
|
700
470
|
// For checkbox, fire native event so checked state will be right
|
701
471
|
trigger: function() {
|
702
|
-
if (
|
472
|
+
if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
|
703
473
|
this.click();
|
704
474
|
return false;
|
705
475
|
}
|
@@ -721,59 +491,16 @@ jQuery.event = {
|
|
721
491
|
}
|
722
492
|
}
|
723
493
|
}
|
724
|
-
},
|
725
|
-
|
726
|
-
// Piggyback on a donor event to simulate a different one
|
727
|
-
simulate: function( type, elem, event ) {
|
728
|
-
var e = jQuery.extend(
|
729
|
-
new jQuery.Event(),
|
730
|
-
event,
|
731
|
-
{
|
732
|
-
type: type,
|
733
|
-
isSimulated: true
|
734
|
-
|
735
|
-
// Previously, `originalEvent: {}` was set here, so stopPropagation call
|
736
|
-
// would not be triggered on donor event, since in our own
|
737
|
-
// jQuery.event.stopPropagation function we had a check for existence of
|
738
|
-
// originalEvent.stopPropagation method, so, consequently it would be a noop.
|
739
|
-
//
|
740
|
-
// Guard for simulated events was moved to jQuery.event.stopPropagation function
|
741
|
-
// since `originalEvent` should point to the original event for the
|
742
|
-
// constancy with other events and for more focused logic
|
743
|
-
}
|
744
|
-
);
|
745
|
-
|
746
|
-
jQuery.event.trigger( e, null, elem );
|
747
|
-
|
748
|
-
if ( e.isDefaultPrevented() ) {
|
749
|
-
event.preventDefault();
|
750
|
-
}
|
751
494
|
}
|
752
495
|
};
|
753
496
|
|
754
|
-
jQuery.removeEvent =
|
755
|
-
function( elem, type, handle ) {
|
497
|
+
jQuery.removeEvent = function( elem, type, handle ) {
|
756
498
|
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
function( elem, type, handle ) {
|
763
|
-
var name = "on" + type;
|
764
|
-
|
765
|
-
if ( elem.detachEvent ) {
|
766
|
-
|
767
|
-
// #8545, #7054, preventing memory leaks for custom events in IE6-8
|
768
|
-
// detachEvent needed property on element, by name of that event,
|
769
|
-
// to properly expose it to GC
|
770
|
-
if ( typeof elem[ name ] === "undefined" ) {
|
771
|
-
elem[ name ] = null;
|
772
|
-
}
|
773
|
-
|
774
|
-
elem.detachEvent( name, handle );
|
775
|
-
}
|
776
|
-
};
|
499
|
+
// This "if" is needed for plain objects
|
500
|
+
if ( elem.removeEventListener ) {
|
501
|
+
elem.removeEventListener( type, handle );
|
502
|
+
}
|
503
|
+
};
|
777
504
|
|
778
505
|
jQuery.Event = function( src, props ) {
|
779
506
|
|
@@ -792,11 +519,21 @@ jQuery.Event = function( src, props ) {
|
|
792
519
|
this.isDefaultPrevented = src.defaultPrevented ||
|
793
520
|
src.defaultPrevented === undefined &&
|
794
521
|
|
795
|
-
// Support:
|
522
|
+
// Support: Android <=2.3 only
|
796
523
|
src.returnValue === false ?
|
797
524
|
returnTrue :
|
798
525
|
returnFalse;
|
799
526
|
|
527
|
+
// Create target properties
|
528
|
+
// Support: Safari <=6 - 7 only
|
529
|
+
// Target should not be a text node (#504, #13143)
|
530
|
+
this.target = ( src.target && src.target.nodeType === 3 ) ?
|
531
|
+
src.target.parentNode :
|
532
|
+
src.target;
|
533
|
+
|
534
|
+
this.currentTarget = src.currentTarget;
|
535
|
+
this.relatedTarget = src.relatedTarget;
|
536
|
+
|
800
537
|
// Event type
|
801
538
|
} else {
|
802
539
|
this.type = src;
|
@@ -815,29 +552,21 @@ jQuery.Event = function( src, props ) {
|
|
815
552
|
};
|
816
553
|
|
817
554
|
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
|
818
|
-
//
|
555
|
+
// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
|
819
556
|
jQuery.Event.prototype = {
|
820
557
|
constructor: jQuery.Event,
|
821
558
|
isDefaultPrevented: returnFalse,
|
822
559
|
isPropagationStopped: returnFalse,
|
823
560
|
isImmediatePropagationStopped: returnFalse,
|
561
|
+
isSimulated: false,
|
824
562
|
|
825
563
|
preventDefault: function() {
|
826
564
|
var e = this.originalEvent;
|
827
565
|
|
828
566
|
this.isDefaultPrevented = returnTrue;
|
829
|
-
if ( !e ) {
|
830
|
-
return;
|
831
|
-
}
|
832
567
|
|
833
|
-
|
834
|
-
if ( e.preventDefault ) {
|
568
|
+
if ( e && !this.isSimulated ) {
|
835
569
|
e.preventDefault();
|
836
|
-
|
837
|
-
// Support: IE
|
838
|
-
// Otherwise set the returnValue property of the original event to false
|
839
|
-
} else {
|
840
|
-
e.returnValue = false;
|
841
570
|
}
|
842
571
|
},
|
843
572
|
stopPropagation: function() {
|
@@ -845,25 +574,16 @@ jQuery.Event.prototype = {
|
|
845
574
|
|
846
575
|
this.isPropagationStopped = returnTrue;
|
847
576
|
|
848
|
-
if (
|
849
|
-
return;
|
850
|
-
}
|
851
|
-
|
852
|
-
// If stopPropagation exists, run it on the original event
|
853
|
-
if ( e.stopPropagation ) {
|
577
|
+
if ( e && !this.isSimulated ) {
|
854
578
|
e.stopPropagation();
|
855
579
|
}
|
856
|
-
|
857
|
-
// Support: IE
|
858
|
-
// Set the cancelBubble property of the original event to true
|
859
|
-
e.cancelBubble = true;
|
860
580
|
},
|
861
581
|
stopImmediatePropagation: function() {
|
862
582
|
var e = this.originalEvent;
|
863
583
|
|
864
584
|
this.isImmediatePropagationStopped = returnTrue;
|
865
585
|
|
866
|
-
if ( e &&
|
586
|
+
if ( e && !this.isSimulated ) {
|
867
587
|
e.stopImmediatePropagation();
|
868
588
|
}
|
869
589
|
|
@@ -871,13 +591,62 @@ jQuery.Event.prototype = {
|
|
871
591
|
}
|
872
592
|
};
|
873
593
|
|
594
|
+
// Includes all common event props including KeyEvent and MouseEvent specific props
|
595
|
+
jQuery.each( {
|
596
|
+
altKey: true,
|
597
|
+
bubbles: true,
|
598
|
+
cancelable: true,
|
599
|
+
changedTouches: true,
|
600
|
+
ctrlKey: true,
|
601
|
+
detail: true,
|
602
|
+
eventPhase: true,
|
603
|
+
metaKey: true,
|
604
|
+
pageX: true,
|
605
|
+
pageY: true,
|
606
|
+
shiftKey: true,
|
607
|
+
view: true,
|
608
|
+
"char": true,
|
609
|
+
charCode: true,
|
610
|
+
key: true,
|
611
|
+
keyCode: true,
|
612
|
+
button: true,
|
613
|
+
buttons: true,
|
614
|
+
clientX: true,
|
615
|
+
clientY: true,
|
616
|
+
offsetX: true,
|
617
|
+
offsetY: true,
|
618
|
+
pointerId: true,
|
619
|
+
pointerType: true,
|
620
|
+
screenX: true,
|
621
|
+
screenY: true,
|
622
|
+
targetTouches: true,
|
623
|
+
toElement: true,
|
624
|
+
touches: true,
|
625
|
+
|
626
|
+
which: function( event ) {
|
627
|
+
var button = event.button;
|
628
|
+
|
629
|
+
// Add which for key events
|
630
|
+
if ( event.which == null && rkeyEvent.test( event.type ) ) {
|
631
|
+
return event.charCode != null ? event.charCode : event.keyCode;
|
632
|
+
}
|
633
|
+
|
634
|
+
// Add which for click: 1 === left; 2 === middle; 3 === right
|
635
|
+
if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
|
636
|
+
return ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
|
637
|
+
}
|
638
|
+
|
639
|
+
return event.which;
|
640
|
+
}
|
641
|
+
}, jQuery.event.addProp );
|
642
|
+
|
874
643
|
// Create mouseenter/leave events using mouseover/out and event-time checks
|
875
644
|
// so that event delegation works in jQuery.
|
876
645
|
// Do the same for pointerenter/pointerleave and pointerover/pointerout
|
877
646
|
//
|
878
647
|
// Support: Safari 7 only
|
879
648
|
// Safari sends mouseenter too often; see:
|
880
|
-
// https://
|
649
|
+
// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
|
881
650
|
// for the description of the bug (it existed in older Chrome versions as well).
|
882
651
|
jQuery.each( {
|
883
652
|
mouseenter: "mouseover",
|
@@ -907,171 +676,6 @@ jQuery.each( {
|
|
907
676
|
};
|
908
677
|
} );
|
909
678
|
|
910
|
-
// IE submit delegation
|
911
|
-
if ( !support.submit ) {
|
912
|
-
|
913
|
-
jQuery.event.special.submit = {
|
914
|
-
setup: function() {
|
915
|
-
|
916
|
-
// Only need this for delegated form submit events
|
917
|
-
if ( jQuery.nodeName( this, "form" ) ) {
|
918
|
-
return false;
|
919
|
-
}
|
920
|
-
|
921
|
-
// Lazy-add a submit handler when a descendant form may potentially be submitted
|
922
|
-
jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
|
923
|
-
|
924
|
-
// Node name check avoids a VML-related crash in IE (#9807)
|
925
|
-
var elem = e.target,
|
926
|
-
form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ?
|
927
|
-
|
928
|
-
// Support: IE <=8
|
929
|
-
// We use jQuery.prop instead of elem.form
|
930
|
-
// to allow fixing the IE8 delegated submit issue (gh-2332)
|
931
|
-
// by 3rd party polyfills/workarounds.
|
932
|
-
jQuery.prop( elem, "form" ) :
|
933
|
-
undefined;
|
934
|
-
|
935
|
-
if ( form && !jQuery._data( form, "submit" ) ) {
|
936
|
-
jQuery.event.add( form, "submit._submit", function( event ) {
|
937
|
-
event._submitBubble = true;
|
938
|
-
} );
|
939
|
-
jQuery._data( form, "submit", true );
|
940
|
-
}
|
941
|
-
} );
|
942
|
-
|
943
|
-
// return undefined since we don't need an event listener
|
944
|
-
},
|
945
|
-
|
946
|
-
postDispatch: function( event ) {
|
947
|
-
|
948
|
-
// If form was submitted by the user, bubble the event up the tree
|
949
|
-
if ( event._submitBubble ) {
|
950
|
-
delete event._submitBubble;
|
951
|
-
if ( this.parentNode && !event.isTrigger ) {
|
952
|
-
jQuery.event.simulate( "submit", this.parentNode, event );
|
953
|
-
}
|
954
|
-
}
|
955
|
-
},
|
956
|
-
|
957
|
-
teardown: function() {
|
958
|
-
|
959
|
-
// Only need this for delegated form submit events
|
960
|
-
if ( jQuery.nodeName( this, "form" ) ) {
|
961
|
-
return false;
|
962
|
-
}
|
963
|
-
|
964
|
-
// Remove delegated handlers; cleanData eventually reaps submit handlers attached above
|
965
|
-
jQuery.event.remove( this, "._submit" );
|
966
|
-
}
|
967
|
-
};
|
968
|
-
}
|
969
|
-
|
970
|
-
// IE change delegation and checkbox/radio fix
|
971
|
-
if ( !support.change ) {
|
972
|
-
|
973
|
-
jQuery.event.special.change = {
|
974
|
-
|
975
|
-
setup: function() {
|
976
|
-
|
977
|
-
if ( rformElems.test( this.nodeName ) ) {
|
978
|
-
|
979
|
-
// IE doesn't fire change on a check/radio until blur; trigger it on click
|
980
|
-
// after a propertychange. Eat the blur-change in special.change.handle.
|
981
|
-
// This still fires onchange a second time for check/radio after blur.
|
982
|
-
if ( this.type === "checkbox" || this.type === "radio" ) {
|
983
|
-
jQuery.event.add( this, "propertychange._change", function( event ) {
|
984
|
-
if ( event.originalEvent.propertyName === "checked" ) {
|
985
|
-
this._justChanged = true;
|
986
|
-
}
|
987
|
-
} );
|
988
|
-
jQuery.event.add( this, "click._change", function( event ) {
|
989
|
-
if ( this._justChanged && !event.isTrigger ) {
|
990
|
-
this._justChanged = false;
|
991
|
-
}
|
992
|
-
|
993
|
-
// Allow triggered, simulated change events (#11500)
|
994
|
-
jQuery.event.simulate( "change", this, event );
|
995
|
-
} );
|
996
|
-
}
|
997
|
-
return false;
|
998
|
-
}
|
999
|
-
|
1000
|
-
// Delegated event; lazy-add a change handler on descendant inputs
|
1001
|
-
jQuery.event.add( this, "beforeactivate._change", function( e ) {
|
1002
|
-
var elem = e.target;
|
1003
|
-
|
1004
|
-
if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "change" ) ) {
|
1005
|
-
jQuery.event.add( elem, "change._change", function( event ) {
|
1006
|
-
if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
|
1007
|
-
jQuery.event.simulate( "change", this.parentNode, event );
|
1008
|
-
}
|
1009
|
-
} );
|
1010
|
-
jQuery._data( elem, "change", true );
|
1011
|
-
}
|
1012
|
-
} );
|
1013
|
-
},
|
1014
|
-
|
1015
|
-
handle: function( event ) {
|
1016
|
-
var elem = event.target;
|
1017
|
-
|
1018
|
-
// Swallow native change events from checkbox/radio, we already triggered them above
|
1019
|
-
if ( this !== elem || event.isSimulated || event.isTrigger ||
|
1020
|
-
( elem.type !== "radio" && elem.type !== "checkbox" ) ) {
|
1021
|
-
|
1022
|
-
return event.handleObj.handler.apply( this, arguments );
|
1023
|
-
}
|
1024
|
-
},
|
1025
|
-
|
1026
|
-
teardown: function() {
|
1027
|
-
jQuery.event.remove( this, "._change" );
|
1028
|
-
|
1029
|
-
return !rformElems.test( this.nodeName );
|
1030
|
-
}
|
1031
|
-
};
|
1032
|
-
}
|
1033
|
-
|
1034
|
-
// Support: Firefox
|
1035
|
-
// Firefox doesn't have focus(in | out) events
|
1036
|
-
// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
|
1037
|
-
//
|
1038
|
-
// Support: Chrome, Safari
|
1039
|
-
// focus(in | out) events fire after focus & blur events,
|
1040
|
-
// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
|
1041
|
-
// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857
|
1042
|
-
if ( !support.focusin ) {
|
1043
|
-
jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
|
1044
|
-
|
1045
|
-
// Attach a single capturing handler on the document while someone wants focusin/focusout
|
1046
|
-
var handler = function( event ) {
|
1047
|
-
jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
|
1048
|
-
};
|
1049
|
-
|
1050
|
-
jQuery.event.special[ fix ] = {
|
1051
|
-
setup: function() {
|
1052
|
-
var doc = this.ownerDocument || this,
|
1053
|
-
attaches = jQuery._data( doc, fix );
|
1054
|
-
|
1055
|
-
if ( !attaches ) {
|
1056
|
-
doc.addEventListener( orig, handler, true );
|
1057
|
-
}
|
1058
|
-
jQuery._data( doc, fix, ( attaches || 0 ) + 1 );
|
1059
|
-
},
|
1060
|
-
teardown: function() {
|
1061
|
-
var doc = this.ownerDocument || this,
|
1062
|
-
attaches = jQuery._data( doc, fix ) - 1;
|
1063
|
-
|
1064
|
-
if ( !attaches ) {
|
1065
|
-
doc.removeEventListener( orig, handler, true );
|
1066
|
-
jQuery._removeData( doc, fix );
|
1067
|
-
} else {
|
1068
|
-
jQuery._data( doc, fix, attaches );
|
1069
|
-
}
|
1070
|
-
}
|
1071
|
-
};
|
1072
|
-
} );
|
1073
|
-
}
|
1074
|
-
|
1075
679
|
jQuery.fn.extend( {
|
1076
680
|
|
1077
681
|
on: function( types, selector, data, fn ) {
|
@@ -1115,18 +719,6 @@ jQuery.fn.extend( {
|
|
1115
719
|
return this.each( function() {
|
1116
720
|
jQuery.event.remove( this, types, fn, selector );
|
1117
721
|
} );
|
1118
|
-
},
|
1119
|
-
|
1120
|
-
trigger: function( type, data ) {
|
1121
|
-
return this.each( function() {
|
1122
|
-
jQuery.event.trigger( type, data, this );
|
1123
|
-
} );
|
1124
|
-
},
|
1125
|
-
triggerHandler: function( type, data ) {
|
1126
|
-
var elem = this[ 0 ];
|
1127
|
-
if ( elem ) {
|
1128
|
-
return jQuery.event.trigger( type, data, elem, true );
|
1129
|
-
}
|
1130
722
|
}
|
1131
723
|
} );
|
1132
724
|
|