From cc8e7493e28089414ea3e3d8d6f22608d5335930 Mon Sep 17 00:00:00 2001 From: Ivymaster Date: Fri, 31 Jul 2026 13:29:04 +0200 Subject: [PATCH] Added removal of mounted click listeners for detached divs --- public/js/directives/Calendar/Click.js | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/public/js/directives/Calendar/Click.js b/public/js/directives/Calendar/Click.js index e5de31f1a..c4c0c725b 100644 --- a/public/js/directives/Calendar/Click.js +++ b/public/js/directives/Calendar/Click.js @@ -1,11 +1,17 @@ const clickListeners = []; -function saveAddClickListener(el, source, value) { +function removeClickListener(el) { const index = clickListeners.findIndex(data => data.el == el); - if (index >= 0) { - el.removeEventListener('click', clickListeners[index].listener); - clickListeners.splice(index, 1); - } + if (index < 0) + return; + + el.removeEventListener('click', clickListeners[index].listener); + clickListeners.splice(index, 1); +} + +function saveAddClickListener(el, source, value) { + removeClickListener(el); + const listener = evt => { evt.preventDefault(); evt.stopPropagation(); @@ -45,5 +51,9 @@ export default { if (binding.arg != 'container') { saveAddClickListener(el, binding.arg, binding.value); } + }, + beforeUnmount(el, binding) { + if (binding.arg != 'container') + removeClickListener(el); } -} \ No newline at end of file +}