MCPcopy Index your code
hub / github.com/angular-ui/ui-router / eventHandler

Function eventHandler

test/angular/1.7/angular.js:3774–3817  ·  view source on GitHub ↗
(event, type)

Source from the content-addressed store, hash-verified

3772
3773function createEventHandler(element, events) {
3774 var eventHandler = function(event, type) {
3775 // jQuery specific api
3776 event.isDefaultPrevented = function() {
3777 return event.defaultPrevented;
3778 };
3779
3780 var eventFns = events[type || event.type];
3781 var eventFnsLength = eventFns ? eventFns.length : 0;
3782
3783 if (!eventFnsLength) return;
3784
3785 if (isUndefined(event.immediatePropagationStopped)) {
3786 var originalStopImmediatePropagation = event.stopImmediatePropagation;
3787 event.stopImmediatePropagation = function() {
3788 event.immediatePropagationStopped = true;
3789
3790 if (event.stopPropagation) {
3791 event.stopPropagation();
3792 }
3793
3794 if (originalStopImmediatePropagation) {
3795 originalStopImmediatePropagation.call(event);
3796 }
3797 };
3798 }
3799
3800 event.isImmediatePropagationStopped = function() {
3801 return event.immediatePropagationStopped === true;
3802 };
3803
3804 // Some events have special handlers that wrap the real handler
3805 var handlerWrapper = eventFns.specialHandlerWrapper || defaultHandlerWrapper;
3806
3807 // Copy event handlers in case event handlers array is modified during execution.
3808 if ((eventFnsLength > 1)) {
3809 eventFns = shallowCopy(eventFns);
3810 }
3811
3812 for (var i = 0; i < eventFnsLength; i++) {
3813 if (!event.isImmediatePropagationStopped()) {
3814 handlerWrapper(element, event, eventFns[i]);
3815 }
3816 }
3817 };
3818
3819 // TODO: this is a hack for angularMocks/clearDataCache that makes it possible to deregister all
3820 // events on `element`

Callers 1

callEventHandlerFunction · 0.70

Calls 2

isUndefinedFunction · 0.70
shallowCopyFunction · 0.70

Tested by

no test coverage detected