]> source.dussan.org Git - jquery.git/commitdiff
Event: Fix #14544. Remove elem from event handle, close gh-1400.
authorIlya Kantor <iliakan@gmail.com>
Tue, 15 Oct 2013 13:09:55 +0000 (17:09 +0400)
committerDave Methvin <dave.methvin@gmail.com>
Thu, 14 Nov 2013 19:46:47 +0000 (14:46 -0500)
This also reduces memory leaks if the element is removed without cleaning
events (e.g with native DOM operations).

Not pickable into the 1.x branch because oldIE still needs this.

src/event.js

index fc924ec3678376be9ecbdb7db00f0784458fa525..5ca6d2e9696daa9252e979dda7354730752edc20 100644 (file)
@@ -72,12 +72,9 @@ jQuery.event = {
                        eventHandle = elemData.handle = function( e ) {
                                // Discard the second event of a jQuery.event.trigger() and
                                // when an event is called after a page has unloaded
-                               return typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ?
-                                       jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
-                                       undefined;
+                               return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?
+                                       jQuery.event.dispatch.apply( elem, arguments ) : undefined;
                        };
-                       // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
-                       eventHandle.elem = elem;
                }
 
                // Handle multiple events separated by a space
@@ -146,8 +143,6 @@ jQuery.event = {
                        jQuery.event.global[ type ] = true;
                }
 
-               // Nullify elem to prevent memory leaks in IE
-               elem = null;
        },
 
        // Detach an event or set of events from an element