If e.preventDefault() is called, can see reflected in e.defaultPrevented method.
Is there a similar property for e.stopPropagation()? If not, how to determine?
I haven't looked through jQuery to see their method, but it seems you could override the stopPropagation method on the base Event object, set a flag, and then call the overridden method.
Something like:
var overriddenStop = Event.prototype.stopPropagation;
Event.prototype.stopPropagation = function(){
this.isPropagationStopped = true;
overriddenStop.apply(this, arguments);
}
No, there isn't.
I can tell, because jQuery's isPropagationStopped() method doesn't use any browser API internally, but instead implements this feature manually. (If there were such a feature in the browsers - built-in - jQuery would use it instead of doing it manually.)
So, in jQuery, a new event object will get this property (inherited):
isPropagationStopped: returnFalse
and then, when you invoke stopPropagation() on that event object, jQuery will manually alter this property:
stopPropagation: function() {
this.isPropagationStopped = returnTrue;
...
}
returnFalse and returnTrue are functions which return false and true respectively.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With