From c7b85f7070b4bebb34327e99a6940b68bf202163 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Thu, 27 Mar 2025 00:01:43 +0800 Subject: [PATCH] Fix dropdown module accessing (#34026) Follow #34014. --- web_src/js/modules/fomantic/dropdown.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/web_src/js/modules/fomantic/dropdown.ts b/web_src/js/modules/fomantic/dropdown.ts index 4bd08c5226..1b05939cf3 100644 --- a/web_src/js/modules/fomantic/dropdown.ts +++ b/web_src/js/modules/fomantic/dropdown.ts @@ -21,14 +21,17 @@ export function initAriaDropdownPatch() { function ariaDropdownFn(this: any, ...args: Parameters) { const ret = fomanticDropdownFn.apply(this, args); - for (const el of this) { + for (let el of this) { + // dropdown will replace '' + // so we need to correctly find the closest '.ui.dropdown' element, it is the real fomantic dropdown module. + el = el.closest('.ui.dropdown'); if (!el[ariaPatchKey]) { // the elements don't belong to the dropdown "module" and won't be reset // so we only need to initialize them once. attachInitElements(el); } - // if the `$().dropdown()` call is without arguments, or it has non-string (object) argument, + // if the `$().dropdown()` is called without arguments, or it has non-string (object) argument, // it means that such call will reset the dropdown "module" including internal settings, // then we need to re-delegate the callbacks. const $dropdown = $(el);