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

Function eventHandler

test/angular/1.5/angular.js:3494–3537  ·  view source on GitHub ↗
(event, type)

Source from the content-addressed store, hash-verified

3492
3493function createEventHandler(element, events) {
3494 var eventHandler = function(event, type) {
3495 // jQuery specific api
3496 event.isDefaultPrevented = function() {
3497 return event.defaultPrevented;
3498 };
3499
3500 var eventFns = events[type || event.type];
3501 var eventFnsLength = eventFns ? eventFns.length : 0;
3502
3503 if (!eventFnsLength) return;
3504
3505 if (isUndefined(event.immediatePropagationStopped)) {
3506 var originalStopImmediatePropagation = event.stopImmediatePropagation;
3507 event.stopImmediatePropagation = function() {
3508 event.immediatePropagationStopped = true;
3509
3510 if (event.stopPropagation) {
3511 event.stopPropagation();
3512 }
3513
3514 if (originalStopImmediatePropagation) {
3515 originalStopImmediatePropagation.call(event);
3516 }
3517 };
3518 }
3519
3520 event.isImmediatePropagationStopped = function() {
3521 return event.immediatePropagationStopped === true;
3522 };
3523
3524 // Some events have special handlers that wrap the real handler
3525 var handlerWrapper = eventFns.specialHandlerWrapper || defaultHandlerWrapper;
3526
3527 // Copy event handlers in case event handlers array is modified during execution.
3528 if ((eventFnsLength > 1)) {
3529 eventFns = shallowCopy(eventFns);
3530 }
3531
3532 for (var i = 0; i < eventFnsLength; i++) {
3533 if (!event.isImmediatePropagationStopped()) {
3534 handlerWrapper(element, event, eventFns[i]);
3535 }
3536 }
3537 };
3538
3539 // TODO: this is a hack for angularMocks/clearDataCache that makes it possible to deregister all
3540 // events on `element`

Callers 1

callEventHandlerFunction · 0.70

Calls 2

isUndefinedFunction · 0.70
shallowCopyFunction · 0.70

Tested by

no test coverage detected