]> source.dussan.org Git - jquery.git/commitdiff
Prevent a single event object from being fixed more than once
authorBrandon Aaron <brandon.aaron@gmail.com>
Sun, 27 Apr 2008 23:08:31 +0000 (23:08 +0000)
committerBrandon Aaron <brandon.aaron@gmail.com>
Sun, 27 Apr 2008 23:08:31 +0000 (23:08 +0000)
src/event.js

index 75d231cdc883aee6594709ec89ec5dcbd44ea684..2d9bdc27a8482fa2ce5094ebf394002af686892f 100644 (file)
@@ -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() {