From 73cba8cc3ac77e68560888aa792781f739c12bba Mon Sep 17 00:00:00 2001 From: Dieter Giesler Date: Wed, 1 Jul 2015 16:34:16 +0200 Subject: [PATCH] SW-11932 - Fix plugin data not cleaning up with alias keyword --- .../frontend/_public/src/js/jquery.plugin-base.js | 4 ++++ .../frontend/_public/src/js/jquery.state-manager.js | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/themes/Frontend/Responsive/frontend/_public/src/js/jquery.plugin-base.js b/themes/Frontend/Responsive/frontend/_public/src/js/jquery.plugin-base.js index 9352aaf575e..2bdbae7e57e 100644 --- a/themes/Frontend/Responsive/frontend/_public/src/js/jquery.plugin-base.js +++ b/themes/Frontend/Responsive/frontend/_public/src/js/jquery.plugin-base.js @@ -166,6 +166,10 @@ me.$el.removeData('plugin_' + name); + if (me.alias) { + me.$el.removeData('plugin_' + me.alias); + } + /** @deprecated - will be removed in 5.1 */ $.publish('plugin/' + name + '/destroy', [ me ]); diff --git a/themes/Frontend/Responsive/frontend/_public/src/js/jquery.state-manager.js b/themes/Frontend/Responsive/frontend/_public/src/js/jquery.state-manager.js index 4d5ad570591..afde69473c5 100644 --- a/themes/Frontend/Responsive/frontend/_public/src/js/jquery.state-manager.js +++ b/themes/Frontend/Responsive/frontend/_public/src/js/jquery.state-manager.js @@ -993,7 +993,8 @@ len = $el.length, i = 0, $currentEl, - plugin; + plugin, + alias; if (!len) { return; @@ -1003,6 +1004,10 @@ $currentEl = $($el[i]); if ((plugin = $currentEl.data(name))) { + if (alias = plugin.alias) { + $currentEl.removeData('plugin_' + alias); + } + plugin.destroy(); $currentEl.removeData(name); }