From b84b997ea4be31dd1fdcc63136811dcd324dec68 Mon Sep 17 00:00:00 2001 From: Brandon Aaron Date: Sun, 27 Apr 2008 23:08:31 +0000 Subject: [PATCH] Prevent a single event object from being fixed more than once --- src/event.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/event.js b/src/event.js index 75d231c..2d9bdc2 100644 --- a/src/event.js +++ b/src/event.js @@ -268,17 +268,23 @@ jQuery.event = { // Clean up added properties in IE to prevent memory leak if (jQuery.browser.msie) event.target = event.preventDefault = event.stopPropagation = - event.handler = event.data = null; + event.handler = event.data = event[expando] = null; return val; }, fix: function(event) { + if ( event[expando] == true ) + return event; + // store a copy of the original event object // and clone to set read-only properties var originalEvent = event; event = jQuery.extend({}, originalEvent); + // Mark it as fixed + event[expando] = true; + // add preventDefault and stopPropagation since // they will not work on the clone event.preventDefault = function() { -- 1.7.10.4