aboutsummaryrefslogtreecommitdiffstats
path: root/src/jqLite.js
diff options
context:
space:
mode:
authorVojta Jina2012-02-23 23:41:41 -0800
committerVojta Jina2012-02-23 23:41:41 -0800
commit230f29d0a78a04a6963514da8b1e34cc03e553d0 (patch)
tree4bfaa0880fbbe9befe644677a6465d6cbaeabb9f /src/jqLite.js
parent3171f215910255938c179d8243480fbaeebc77cf (diff)
downloadangular.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.js17
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;