From 6ff882280df1e4d5fa10344366fa65b86cc257fe Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Mon, 3 Mar 2025 12:32:03 +0800 Subject: [PATCH 1/3] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E9=94=80?= =?UTF-8?q?=E6=AF=81=E6=96=B9=E6=B3=95=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/AutoComplete/AutoComplete.razor.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js index ef02ab29562..0be64cf87fb 100644 --- a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js +++ b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js @@ -160,12 +160,12 @@ export function dispose(id) { EventHandler.off(input, 'keyup'); EventHandler.off(input, 'blur'); Input.dispose(input); - } - const { AutoComplete } = window.BootstrapBlazor; - AutoComplete.dispose(id, () => { - EventHandler.off(document, 'click', ac.closePopover); - }); + const { AutoComplete } = window.BootstrapBlazor; + AutoComplete.dispose(id, () => { + EventHandler.off(document, 'click', ac.closePopover); + }); + } } const scrollIntoView = (el, item) => { From 8519e4c08d0ce67a479b412c1188cd16a8933384 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Mon, 3 Mar 2025 12:57:52 +0800 Subject: [PATCH 2/3] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=20triggerBlu?= =?UTF-8?q?r=20=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/AutoComplete/AutoComplete.razor.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js index 0be64cf87fb..fd49bea4814 100644 --- a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js +++ b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js @@ -33,7 +33,7 @@ export function init(id, invoke) { }) } - EventHandler.on(input, 'blur', e => { + ac.triggerBlur = () => { el.classList.remove('show'); const triggerBlur = input.getAttribute('data-bb-blur') === 'true'; if (triggerBlur) { @@ -81,7 +81,11 @@ export function init(id, invoke) { const el = a.querySelector('[data-bs-toggle="bb.dropdown"]'); if (el === null) { - a.classList.remove('show'); + const id = a.getAttribute('id'); + const d = Data.get(id); + if (d) { + d.triggerBlur(); + } } }); } @@ -99,7 +103,7 @@ const handlerKeyup = (ac, e) => { const current = menu.querySelector('.active'); if (current !== null) { current.click(); - input.blur(); + ac.triggerBlur(); } invoke.invokeMethodAsync('EnterCallback', input.value); } @@ -108,7 +112,7 @@ const handlerKeyup = (ac, e) => { const skipEsc = el.getAttribute('data-bb-skip-esc') === 'true'; if (skipEsc === false) { invoke.invokeMethodAsync('EscCallback'); - input.blur(); + ac.triggerBlur(); } } else if (key === 'ArrowUp' || key === 'ArrowDown') { @@ -158,7 +162,6 @@ export function dispose(id) { } EventHandler.off(input, 'change'); EventHandler.off(input, 'keyup'); - EventHandler.off(input, 'blur'); Input.dispose(input); const { AutoComplete } = window.BootstrapBlazor; From 5a24f5e8ca0603df6f96a178ae07a927c3591005 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Mon, 3 Mar 2025 13:09:46 +0800 Subject: [PATCH 3/3] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=20menu=20?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/AutoComplete/AutoComplete.razor.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js index fd49bea4814..3b7e8557f35 100644 --- a/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js +++ b/src/BootstrapBlazor/Components/AutoComplete/AutoComplete.razor.js @@ -39,6 +39,10 @@ export function init(id, invoke) { if (triggerBlur) { invoke.invokeMethodAsync('TriggerBlur'); } + } + + EventHandler.on(menu, 'click', '.dropdown-item', e => { + ac.triggerBlur(); }); EventHandler.on(input, 'focus', e => { @@ -153,7 +157,7 @@ export function dispose(id) { Data.remove(id) if (ac) { - const { popover, input } = ac; + const { popover, input, menu } = ac; if (popover) { Popover.dispose(popover) if (input) { @@ -162,6 +166,7 @@ export function dispose(id) { } EventHandler.off(input, 'change'); EventHandler.off(input, 'keyup'); + EventHandler.off(menu, 'click'); Input.dispose(input); const { AutoComplete } = window.BootstrapBlazor;