aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ui/tabs.js12
1 files changed, 11 insertions, 1 deletions
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)