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

Function eventHandler

lib/test/angular/1.8.0/angular.js:3839–3882  ·  view source on GitHub ↗
(event, type)

Source from the content-addressed store, hash-verified

3837
3838function createEventHandler(element, events) {
3839 var eventHandler = function(event, type) {
3840 // jQuery specific api
3841 event.isDefaultPrevented = function() {
3842 return event.defaultPrevented;
3843 };
3844
3845 var eventFns = events[type || event.type];
3846 var eventFnsLength = eventFns ? eventFns.length : 0;
3847
3848 if (!eventFnsLength) return;
3849
3850 if (isUndefined(event.immediatePropagationStopped)) {
3851 var originalStopImmediatePropagation = event.stopImmediatePropagation;
3852 event.stopImmediatePropagation = function() {
3853 event.immediatePropagationStopped = true;
3854
3855 if (event.stopPropagation) {
3856 event.stopPropagation();
3857 }
3858
3859 if (originalStopImmediatePropagation) {
3860 originalStopImmediatePropagation.call(event);
3861 }
3862 };
3863 }
3864
3865 event.isImmediatePropagationStopped = function() {
3866 return event.immediatePropagationStopped === true;
3867 };
3868
3869 // Some events have special handlers that wrap the real handler
3870 var handlerWrapper = eventFns.specialHandlerWrapper || defaultHandlerWrapper;
3871
3872 // Copy event handlers in case event handlers array is modified during execution.
3873 if ((eventFnsLength > 1)) {
3874 eventFns = shallowCopy(eventFns);
3875 }
3876
3877 for (var i = 0; i < eventFnsLength; i++) {
3878 if (!event.isImmediatePropagationStopped()) {
3879 handlerWrapper(element, event, eventFns[i]);
3880 }
3881 }
3882 };
3883
3884 // TODO: this is a hack for angularMocks/clearDataCache that makes it possible to deregister all
3885 // events on `element`

Callers 1

callEventHandlerFunction · 0.70

Calls 2

isUndefinedFunction · 0.70
shallowCopyFunction · 0.70

Tested by

no test coverage detected