Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 230f29d

Browse files
committed
fix(jqLite): set event's monkey patched methods to null (on IE7)
1 parent 3171f21 commit 230f29d

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/jqLite.js

+13-4
Original file line numberDiff line numberDiff line change
@@ -474,11 +474,13 @@ function createEventHandler(element) {
474474
event.returnValue = false; //ie
475475
};
476476
}
477+
477478
if (!event.stopPropagation) {
478479
event.stopPropagation = function() {
479480
event.cancelBubble = true; //ie
480481
};
481482
}
483+
482484
if (!event.target) {
483485
event.target = event.srcElement || document;
484486
}
@@ -502,10 +504,17 @@ function createEventHandler(element) {
502504

503505
// Remove monkey-patched methods (IE),
504506
// as they would cause memory leaks in IE8.
505-
// It shouldn't affect normal browsers, as their native methods are defined on prototype.
506-
delete event.preventDefault;
507-
delete event.stopPropagation;
508-
delete event.isDefaultPrevented;
507+
if (msie < 8) {
508+
// IE7 does not allow to delete property on native object
509+
event.preventDefault = null;
510+
event.stopPropagation = null;
511+
event.isDefaultPrevented = null;
512+
} else {
513+
// It shouldn't affect normal browsers (native methods are defined on prototype).
514+
delete event.preventDefault;
515+
delete event.stopPropagation;
516+
delete event.isDefaultPrevented;
517+
}
509518
};
510519
eventHandler.fns = [];
511520
return eventHandler;

0 commit comments

Comments
 (0)