From 1368a1e910153a2694e96be7c0de8257b0250a51 Mon Sep 17 00:00:00 2001 From: "Benjamin W. Broersma" Date: Thu, 19 Sep 2024 16:17:44 +0200 Subject: [PATCH] Fix accordion js (#1501) Fix #1237 by regex matching for specific hash pattern and checking if the result is a DOM element. --- frontend/js/accordion.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/js/accordion.js b/frontend/js/accordion.js index 8b06e5d7f..5cba33259 100644 --- a/frontend/js/accordion.js +++ b/frontend/js/accordion.js @@ -41,11 +41,11 @@ $('.pre-icon', this).text(opentext); }); - var hash = window.location.hash; - if (hash!='') { - $(hash).attr( 'aria-expanded' , true ).addClass( 'active' ).parent().next( '.panel-content' ).slideDown(200).attr( 'aria-hidden' , 'false'); - setPanelItemFoldText($('.pre-icon', hash), 'close'); - refreshPanelButtonText($(hash), 'open'); + var cphashmatch = /^#control-panel-[0-9]+/.exec(window.location.hash); + if (cphashmatch && $(cphashmatch[0]).length) { + $(cphashmatch[0]).attr( 'aria-expanded' , true ).addClass( 'active' ).parent().next( '.panel-content' ).slideDown(200).attr( 'aria-hidden' , 'false'); + setPanelItemFoldText($('.pre-icon', cphashmatch[0]), 'close'); + refreshPanelButtonText($(cphashmatch[0]), 'open'); } // Now we can play with it