MCPcopy
hub / github.com/angular-ui/ui-router / eventHandler

Function eventHandler

test/angular/1.6/angular.js:3750–3793  ·  view source on GitHub ↗
(event, type)

Source from the content-addressed store, hash-verified

3748
3749function createEventHandler(element, events) {
3750 var eventHandler = function(event, type) {
3751 // jQuery specific api
3752 event.isDefaultPrevented = function() {
3753 return event.defaultPrevented;
3754 };
3755
3756 var eventFns = events[type || event.type];
3757 var eventFnsLength = eventFns ? eventFns.length : 0;
3758
3759 if (!eventFnsLength) return;
3760
3761 if (isUndefined(event.immediatePropagationStopped)) {
3762 var originalStopImmediatePropagation = event.stopImmediatePropagation;
3763 event.stopImmediatePropagation = function() {
3764 event.immediatePropagationStopped = true;
3765
3766 if (event.stopPropagation) {
3767 event.stopPropagation();
3768 }
3769
3770 if (originalStopImmediatePropagation) {
3771 originalStopImmediatePropagation.call(event);
3772 }
3773 };
3774 }
3775
3776 event.isImmediatePropagationStopped = function() {
3777 return event.immediatePropagationStopped === true;
3778 };
3779
3780 // Some events have special handlers that wrap the real handler
3781 var handlerWrapper = eventFns.specialHandlerWrapper || defaultHandlerWrapper;
3782
3783 // Copy event handlers in case event handlers array is modified during execution.
3784 if ((eventFnsLength > 1)) {
3785 eventFns = shallowCopy(eventFns);
3786 }
3787
3788 for (var i = 0; i < eventFnsLength; i++) {
3789 if (!event.isImmediatePropagationStopped()) {
3790 handlerWrapper(element, event, eventFns[i]);
3791 }
3792 }
3793 };
3794
3795 // TODO: this is a hack for angularMocks/clearDataCache that makes it possible to deregister all
3796 // events on `element`

Callers 1

callEventHandlerFunction · 0.70

Calls 2

isUndefinedFunction · 0.70
shallowCopyFunction · 0.70

Tested by

no test coverage detected