From 83eed1294511160e557b9da1be295aa74bccab5b Mon Sep 17 00:00:00 2001 From: Thomas Skerbis Date: Thu, 11 Jun 2026 10:11:14 +0200 Subject: [PATCH] Fix: rex:ready nur auf den neu geladenen Bereich triggern Beim dynamischen Nachladen von Modulen und Content-Settings wurde bisher global $('body').trigger('rex:ready') sowie document 'ready' und 'pjax:success' ausgeloest. Das setzt die Spalten-Navigation zurueck und initialisiert fremde Widgets (z.B. Editoren) mehrfach. Stattdessen wird jetzt nur der neu geladene Zielbereich via dst.trigger('rex:ready', [dst]) initialisiert. --- fragments/gridblock/module_input.php | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/fragments/gridblock/module_input.php b/fragments/gridblock/module_input.php index 3176a10..1a214ae 100644 --- a/fragments/gridblock/module_input.php +++ b/fragments/gridblock/module_input.php @@ -427,10 +427,10 @@ function gridblock_loadModule(moduleID, colID, uID, moduleName, action = "") { //kopierten Status setzen if (action == 'copy' && gridblock_getCookie('action') == 'copy' && gridblock_getCookie('modstatus') != 1) { dst.find('.column-slice-sorter a.btn-status').trigger('click'); } - //Vorgang mit ready abschließen - $('body').trigger('rex:ready', [$('body')]); //macht Probleme -> setzt die Spalten-Navigation zurück - $(document).trigger('ready'); - $(document).trigger('pjax:success'); + // Nur den neu geladenen Modulbereich initialisieren statt der ganzen Seite. + // Ein globaler $('body').trigger('rex:ready') setzt u.a. die Spalten-Navigation + // zurück und initialisiert fremde Widgets (z.B. Editoren) doppelt. + dst.trigger('rex:ready', [dst]); }).always(function() { $('#rex-js-ajax-loader').removeClass('rex-visible'); }).fail(function() { @@ -588,9 +588,8 @@ function gridblock_loadContentSettings(templateID, colID = 0) { dst.html(data); gridblock_showHideContentSettings(data.length, templateID, colID); - $('body').trigger('rex:ready', [$('body')]); //macht Probleme -> setzt die Spalten-Navigation zurück - $(document).trigger('ready'); - $(document).trigger('pjax:success'); + // Nur den neu geladenen Bereich initialisieren statt der ganzen Seite. + dst.trigger('rex:ready', [dst]); }).fail(function() { dst.html('
'); })