diff options
| author | Vojta Jina | 2012-02-23 23:41:41 -0800 |
|---|---|---|
| committer | Vojta Jina | 2012-02-23 23:41:41 -0800 |
| commit | 230f29d0a78a04a6963514da8b1e34cc03e553d0 (patch) | |
| tree | 4bfaa0880fbbe9befe644677a6465d6cbaeabb9f /src/jqLite.js | |
| parent | 3171f215910255938c179d8243480fbaeebc77cf (diff) | |
| download | angular.js-230f29d0a78a04a6963514da8b1e34cc03e553d0.tar.bz2 | |
fix(jqLite): set event's monkey patched methods to null (on IE7)
Diffstat (limited to 'src/jqLite.js')
| -rw-r--r-- | src/jqLite.js | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/jqLite.js b/src/jqLite.js index 8d9ce09c..f32aeaad 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -474,11 +474,13 @@ function createEventHandler(element) { event.returnValue = false; //ie }; } + if (!event.stopPropagation) { event.stopPropagation = function() { event.cancelBubble = true; //ie }; } + if (!event.target) { event.target = event.srcElement || document; } @@ -502,10 +504,17 @@ function createEventHandler(element) { // Remove monkey-patched methods (IE), // as they would cause memory leaks in IE8. - // It shouldn't affect normal browsers, as their native methods are defined on prototype. - delete event.preventDefault; - delete event.stopPropagation; - delete event.isDefaultPrevented; + if (msie < 8) { + // IE7 does not allow to delete property on native object + event.preventDefault = null; + event.stopPropagation = null; + event.isDefaultPrevented = null; + } else { + // It shouldn't affect normal browsers (native methods are defined on prototype). + delete event.preventDefault; + delete event.stopPropagation; + delete event.isDefaultPrevented; + } }; eventHandler.fns = []; return eventHandler; |
