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; | 
