From 2e8e52dec1eaa06ed170a0ed9769c7b97129c955 Mon Sep 17 00:00:00 2001 From: Scott González Date: Wed, 20 Aug 2014 15:57:12 -0400 Subject: Tabs: Avoid memory leak during refresh Fixes #10056 Ref gh-1319 --- ui/tabs.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'ui') diff --git a/ui/tabs.js b/ui/tabs.js index c45d6b3f6..e45a97c72 100644 --- a/ui/tabs.js +++ b/ui/tabs.js @@ -372,7 +372,10 @@ return $.widget( "ui.tabs", { }, _processTabs: function() { - var that = this; + var that = this, + prevTabs = this.tabs, + prevAnchors = this.anchors, + prevPanels = this.panels; this.tablist = this._getList() .addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) @@ -456,6 +459,13 @@ return $.widget( "ui.tabs", { this.panels .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) .attr( "role", "tabpanel" ); + + // Avoid memory leaks (#10056) + if ( prevTabs ) { + this._off( prevTabs.not( this.tabs ) ); + this._off( prevAnchors.not( this.anchors ) ); + this._off( prevPanels.not( this.panels ) ); + } }, // allow overriding how to find the list for rare usage scenarios (#7715) -- cgit v1.2.3