|
@@ -10,18 +10,21 @@ define( [ |
|
|
|
|
|
"use strict"; |
|
|
|
|
|
var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; |
|
|
var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, |
|
|
stopPropagationCallback = function( e ) { |
|
|
e.stopPropagation(); |
|
|
}; |
|
|
|
|
|
jQuery.extend( jQuery.event, { |
|
|
|
|
|
trigger: function( event, data, elem, onlyHandlers ) { |
|
|
|
|
|
var i, cur, tmp, bubbleType, ontype, handle, special, |
|
|
var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, |
|
|
eventPath = [ elem || document ], |
|
|
type = hasOwn.call( event, "type" ) ? event.type : event, |
|
|
namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; |
|
|
|
|
|
cur = tmp = elem = elem || document; |
|
|
cur = lastElement = tmp = elem = elem || document; |
|
|
|
|
|
// Don't do events on text and comment nodes |
|
|
if ( elem.nodeType === 3 || elem.nodeType === 8 ) { |
|
@@ -93,7 +96,7 @@ jQuery.extend( jQuery.event, { |
|
|
// Fire handlers on the event path |
|
|
i = 0; |
|
|
while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { |
|
|
|
|
|
lastElement = cur; |
|
|
event.type = i > 1 ? |
|
|
bubbleType : |
|
|
special.bindType || type; |
|
@@ -136,7 +139,17 @@ jQuery.extend( jQuery.event, { |
|
|
|
|
|
// Prevent re-triggering of the same event, since we already bubbled it above |
|
|
jQuery.event.triggered = type; |
|
|
|
|
|
if ( event.isPropagationStopped() ) { |
|
|
lastElement.addEventListener( type, stopPropagationCallback ); |
|
|
} |
|
|
|
|
|
elem[ type ](); |
|
|
|
|
|
if ( event.isPropagationStopped() ) { |
|
|
lastElement.removeEventListener( type, stopPropagationCallback ); |
|
|
} |
|
|
|
|
|
jQuery.event.triggered = undefined; |
|
|
|
|
|
if ( tmp ) { |
|
|