MCPcopy Create free account
hub / github.com/cafebazaar/blacksmith / eventHandler

Function eventHandler

web/static/bower_components/angular/angular.js:3261–3301  ·  view source on GitHub ↗
(event, type)

Source from the content-addressed store, hash-verified

3259
3260function createEventHandler(element, events) {
3261 var eventHandler = function(event, type) {
3262 // jQuery specific api
3263 event.isDefaultPrevented = function() {
3264 return event.defaultPrevented;
3265 };
3266
3267 var eventFns = events[type || event.type];
3268 var eventFnsLength = eventFns ? eventFns.length : 0;
3269
3270 if (!eventFnsLength) return;
3271
3272 if (isUndefined(event.immediatePropagationStopped)) {
3273 var originalStopImmediatePropagation = event.stopImmediatePropagation;
3274 event.stopImmediatePropagation = function() {
3275 event.immediatePropagationStopped = true;
3276
3277 if (event.stopPropagation) {
3278 event.stopPropagation();
3279 }
3280
3281 if (originalStopImmediatePropagation) {
3282 originalStopImmediatePropagation.call(event);
3283 }
3284 };
3285 }
3286
3287 event.isImmediatePropagationStopped = function() {
3288 return event.immediatePropagationStopped === true;
3289 };
3290
3291 // Copy event handlers in case event handlers array is modified during execution.
3292 if ((eventFnsLength > 1)) {
3293 eventFns = shallowCopy(eventFns);
3294 }
3295
3296 for (var i = 0; i < eventFnsLength; i++) {
3297 if (!event.isImmediatePropagationStopped()) {
3298 eventFns[i].call(element, event);
3299 }
3300 }
3301 };
3302
3303 // TODO: this is a hack for angularMocks/clearDataCache that makes it possible to deregister all
3304 // events on `element`

Callers

nothing calls this directly

Calls 2

isUndefinedFunction · 0.85
shallowCopyFunction · 0.85

Tested by

no test coverage detected