From 8b829ea7d3fda4a459d2361b6b641cf33d199460 Mon Sep 17 00:00:00 2001 From: wen_lun <30396440+wen-lun@users.noreply.github.com> Date: Mon, 16 Dec 2024 18:53:03 +0800 Subject: [PATCH] fix(components): [menu] fix `sliceIndex` calculation error (#19164) fix(components): [menu] Fix 'sliceIndex' calculation error closed #19161 --- packages/components/menu/src/menu.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/components/menu/src/menu.ts b/packages/components/menu/src/menu.ts index 70956b3ddc..57961443ab 100644 --- a/packages/components/menu/src/menu.ts +++ b/packages/components/menu/src/menu.ts @@ -326,10 +326,7 @@ export default defineComponent({ const calcSliceIndex = () => { if (!menu.value) return -1 const items = Array.from(menu.value?.childNodes ?? []).filter( - (item) => - // remove comment type node #12634 - item.nodeName !== '#comment' && - (item.nodeName !== '#text' || item.nodeValue) + (item) => item.nodeName !== '#text' || item.nodeValue ) as HTMLElement[] const moreItemWidth = 64 const computedMenuStyle = getComputedStyle(menu.value!) @@ -339,6 +336,7 @@ export default defineComponent({ let calcWidth = 0 let sliceIndex = 0 items.forEach((item, index) => { + if (item.nodeName === '#comment') return calcWidth += calcMenuItemWidth(item) if (calcWidth <= menuWidth - moreItemWidth) { sliceIndex = index + 1