commit 74471a46eb9a2da5d12f3f4ebd9dfe385744e559
parent 87f53306ae4e6d63f092b3b89f4a43c1a27b19b8
Author: Jan Dankert <devnull@localhost>
Date: Tue, 5 Mar 2013 22:33:27 +0100
Beim Schließen von Tabs auch die geladenen Inhalte aus dem DOM-Baum entfernen.
Diffstat:
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/themes/default/js/openrat.js b/themes/default/js/openrat.js
@@ -262,13 +262,13 @@ function loadViewByName(viewName, url )
function loadView(contentEl,action,method,id )
{
// Schauen, ob der Inhalt schon geladen ist...
- var targetEl = $(contentEl).children('div.sheet.action-'+action+'.method-'+method+'.id'+id);
+ var targetEl = $(contentEl).children('div.sheet.action-'+action+'.method-'+method+'.id-'+id);
if ( targetEl.size() == 0 )
{
// Noch nicht vorhanden, neues Element erstellen.
$(contentEl).children('div.sheet').hide();
- targetEl = $('<div class="sheet action-'+action+' method-'+method+' id'+id + '" />' );
+ targetEl = $('<div class="sheet action-'+action+' method-'+method+' id-'+id + '" />' );
$(contentEl).append(targetEl);
}
else
@@ -737,6 +737,12 @@ function openNewAction( name,action,id,extraId )
$('div#content > div.window > div.menu > div.views > ul.views').scrollLeft(9999);
$('div#content > div.window > div.menu > div.views > ul.views img.close').click( function()
{
+ // Zuerst die dazugehörigen, geladenen Inhalte von Views löschen, um kein
+ // Memory-Leak zu erzeugen ;)
+ var action = $(this).closest('li.action').data('action');
+ var id = $(this).closest('li.action').data('id' );
+ $('div#workbench div.content > div.sheet.action-'+action+'.id-'+id).remove();
+
// Schließen
// Wenn aktiver Tab, dann den Inhalt loeschen
if ( $(this).closest('li.action').hasClass('active') )