aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/event.js20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/event.js b/src/event.js
index 9bc875e24..8722268a8 100644
--- a/src/event.js
+++ b/src/event.js
@@ -601,23 +601,29 @@ jQuery.event = {
}
},
+ // Piggyback on a donor event to simulate a different one
simulate: function( type, elem, event, bubble ) {
- // Piggyback on a donor event to simulate a different one.
- // Fake originalEvent to avoid donor's stopPropagation, but if the
- // simulated event prevents default then we do the same on the donor.
var e = jQuery.extend(
new jQuery.Event(),
event,
{
type: type,
isSimulated: true
+ // Previously, `originalEvent: {}` was set here, so stopPropagation call
+ // would not be triggered on donor event, since in our own
+ // jQuery.event.stopPropagation function we had a check for existence of
+ // originalEvent.stopPropagation method, so, consequently it would be a noop.
+ //
+ // But now, this "simulate" function is used only for events
+ // for which stopPropagation() is noop, so there is no need for that anymore.
+ //
+ // For the compat branch though, guard for "click" and "submit"
+ // events is still used, but was moved to jQuery.event.stopPropagation function
+ // because `originalEvent` should point to the original event for the constancy
+ // with other events and for more focused logic
}
);
- // This prevents stopPropagation(), stopImmediatePropagation(), and preventDefault() from
- // preventing default on the donor event.
- delete e.originalEvent;
-
if ( bubble ) {
jQuery.event.trigger( e, null, elem );
} else {