From: Ilya Kantor Date: Tue, 15 Oct 2013 13:09:55 +0000 (+0400) Subject: Event: Fix #14544. Remove elem from event handle, close gh-1400. X-Git-Tag: 2.1.0-beta2~9 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d0782ed7e81a181f0541e1ce7c8cba0825a80299;p=jquery.git Event: Fix #14544. Remove elem from event handle, close gh-1400. 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. --- diff --git a/src/event.js b/src/event.js index fc924ec36..5ca6d2e96 100644 --- a/src/event.js +++ b/src/event.js @@ -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