From: Brandon Aaron Date: Sun, 27 Apr 2008 23:08:31 +0000 (+0000) Subject: Prevent a single event object from being fixed more than once X-Git-Tag: 1.2.4b~62 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=b84b997ea4be31dd1fdcc63136811dcd324dec68;p=jquery.git Prevent a single event object from being fixed more than once --- diff --git a/src/event.js b/src/event.js index 75d231cdc..2d9bdc27a 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() {