MCPcopy Create free account
hub / github.com/OpenReservation/OpenReservation / eventHandler

Function eventHandler

OpenReservation/wwwroot/Scripts/angular.js:3340–3383  ·  view source on GitHub ↗
(event, type)

Source from the content-addressed store, hash-verified

3338
3339 function createEventHandler(element, events) {
3340 var eventHandler = function (event, type) {
3341 // jQuery specific api
3342 event.isDefaultPrevented = function () {
3343 return event.defaultPrevented;
3344 };
3345
3346 var eventFns = events[type || event.type];
3347 var eventFnsLength = eventFns ? eventFns.length : 0;
3348
3349 if (!eventFnsLength) return;
3350
3351 if (isUndefined(event.immediatePropagationStopped)) {
3352 var originalStopImmediatePropagation = event.stopImmediatePropagation;
3353 event.stopImmediatePropagation = function () {
3354 event.immediatePropagationStopped = true;
3355
3356 if (event.stopPropagation) {
3357 event.stopPropagation();
3358 }
3359
3360 if (originalStopImmediatePropagation) {
3361 originalStopImmediatePropagation.call(event);
3362 }
3363 };
3364 }
3365
3366 event.isImmediatePropagationStopped = function () {
3367 return event.immediatePropagationStopped === true;
3368 };
3369
3370 // Some events have special handlers that wrap the real handler
3371 var handlerWrapper = eventFns.specialHandlerWrapper || defaultHandlerWrapper;
3372
3373 // Copy event handlers in case event handlers array is modified during execution.
3374 if ((eventFnsLength > 1)) {
3375 eventFns = shallowCopy(eventFns);
3376 }
3377
3378 for (var i = 0; i < eventFnsLength; i++) {
3379 if (!event.isImmediatePropagationStopped()) {
3380 handlerWrapper(element, event, eventFns[i]);
3381 }
3382 }
3383 };
3384
3385 // TODO: this is a hack for angularMocks/clearDataCache that makes it possible to deregister all
3386 // events on `element`

Callers

nothing calls this directly

Calls 2

isUndefinedFunction · 0.85
shallowCopyFunction · 0.85

Tested by

no test coverage detected