Skip to content
Permalink
Browse files

Fixed memory leak in IE with non-native event types

  • Loading branch information
brandonaaron committed Dec 21, 2007
1 parent fde3d61 commit c73eadf59952f71f5c55fe9887f1f9e005fe95a4
Showing with 10 additions and 1 deletion.
  1. +10 −1 src/event.js
@@ -49,10 +49,14 @@ jQuery.event = {
if ( typeof jQuery == "undefined" || jQuery.event.triggered )
return val;

val = jQuery.event.handle.apply(elem, arguments);
val = jQuery.event.handle.apply(arguments.callee.elem, arguments);

return val;
});
// Add elem as a property of the handle function
// This is to prevent a memory leak with non-native
// event in IE.
handle.elem = elem;

// Handle multiple events seperated by a space
// jQuery(...).bind("mouseover mouseout", fn);
@@ -87,6 +91,9 @@ jQuery.event = {
// Keep track of which events have been used, for global triggering
jQuery.event.global[type] = true;
});

// Nullify elem to prevent memory leaks in IE
elem = null;
},

guid: 1,
@@ -150,6 +157,8 @@ jQuery.event = {
// Remove the expando if it's no longer used
for ( ret in events ) break;
if ( !ret ) {
var handle = jQuery.data( elem, "handle" );
if ( handle ) handle.elem = null;
jQuery.removeData( elem, "events" );
jQuery.removeData( elem, "handle" );
}

0 comments on commit c73eadf

Please sign in to comment.
You can’t perform that action at this time.