Side navigation
#689 closed bug (fixed)
Opened December 22, 2006 03:12PM UTC
Closed December 24, 2006 01:16AM UTC
Last modified June 20, 2007 02:13AM UTC
event.js .filter() leaks memory in IE
Reported by: | Dave | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | event | Version: | |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
The .toggle method remembers the current state by attaching one of the functions to a .last property of the DOM element. This will cause a memory leak in IE. Using a non-object (number) with a closure gets rid of the leak. Also, using a.constructor==Function will fail if the function is contained in an iframe, so I switched to typeof.
toggle: function(a,b) { var args = arguments; // If two functions are passed in, we're toggling on a click return typeof(a) == "function" && typeof(b) == "function" ? this.bind("click",function(e){ // Figure out which function to execute this.lastToggle = this.lastToggle==0? 1 : 0; // Make sure that clicks stop e.preventDefault(); // and execute the function return args[this.lastToggle].apply( this, [e] ) || false; }) : // Otherwise, execute the old toggle function this._toggle.apply( this, arguments ); },
Attachments (0)
Change History (1)
Changed December 24, 2006 01:16AM UTC by comment:1
resolution: | → fixed |
---|---|
status: | new → closed |
Fixed in SVN.