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

Function eventHandler

test/angular/1.2/angular.js:2821–2871  ·  view source on GitHub ↗
(event, type)

Source from the content-addressed store, hash-verified

2819
2820function createEventHandler(element, events) {
2821 var eventHandler = function (event, type) {
2822 if (!event.preventDefault) {
2823 event.preventDefault = function() {
2824 event.returnValue = false; //ie
2825 };
2826 }
2827
2828 if (!event.stopPropagation) {
2829 event.stopPropagation = function() {
2830 event.cancelBubble = true; //ie
2831 };
2832 }
2833
2834 if (!event.target) {
2835 event.target = event.srcElement || document;
2836 }
2837
2838 if (isUndefined(event.defaultPrevented)) {
2839 var prevent = event.preventDefault;
2840 event.preventDefault = function() {
2841 event.defaultPrevented = true;
2842 prevent.call(event);
2843 };
2844 event.defaultPrevented = false;
2845 }
2846
2847 event.isDefaultPrevented = function() {
2848 return event.defaultPrevented || event.returnValue === false;
2849 };
2850
2851 // Copy event handlers in case event handlers array is modified during execution.
2852 var eventHandlersCopy = shallowCopy(events[type || event.type] || []);
2853
2854 forEach(eventHandlersCopy, function(fn) {
2855 fn.call(element, event);
2856 });
2857
2858 // Remove monkey-patched methods (IE),
2859 // as they would cause memory leaks in IE8.
2860 if (msie <= 8) {
2861 // IE7/8 does not allow to delete property on native object
2862 event.preventDefault = null;
2863 event.stopPropagation = null;
2864 event.isDefaultPrevented = null;
2865 } else {
2866 // It shouldn't affect normal browsers (native methods are defined on prototype).
2867 delete event.preventDefault;
2868 delete event.stopPropagation;
2869 delete event.isDefaultPrevented;
2870 }
2871 };
2872 eventHandler.elem = element;
2873 return eventHandler;
2874}

Callers

nothing calls this directly

Calls 3

isUndefinedFunction · 0.70
shallowCopyFunction · 0.70
forEachFunction · 0.70

Tested by

no test coverage detected