From fc356c7eb66b92fc418838f218ac45f383525573 Mon Sep 17 00:00:00 2001 From: Hufe921 Date: Wed, 26 Jul 2023 21:28:06 +0800 Subject: [PATCH] feat: clear contextmenu side effect in web component #219 --- src/editor/core/contextmenu/ContextMenu.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/editor/core/contextmenu/ContextMenu.ts b/src/editor/core/contextmenu/ContextMenu.ts index d32789d..fbafd85 100644 --- a/src/editor/core/contextmenu/ContextMenu.ts +++ b/src/editor/core/contextmenu/ContextMenu.ts @@ -61,7 +61,7 @@ export class ContextMenu { // 菜单权限 this.container.addEventListener('contextmenu', this._proxyContextMenuEvent) // 副作用处理 - document.addEventListener('mousedown', this._handleEffect) + document.addEventListener('mousedown', this._handleSideEffect) } public removeEvent() { @@ -69,7 +69,7 @@ export class ContextMenu { 'contextmenu', this._proxyContextMenuEvent ) - document.removeEventListener('mousedown', this._handleEffect) + document.removeEventListener('mousedown', this._handleSideEffect) } private _proxyContextMenuEvent = (evt: MouseEvent) => { @@ -99,11 +99,12 @@ export class ContextMenu { evt.preventDefault() } - private _handleEffect = (evt: MouseEvent) => { + private _handleSideEffect = (evt: MouseEvent) => { if (this.contextMenuContainerList.length) { // 点击非右键菜单内 + const target = (evt?.composedPath()[0] || evt.target) const contextMenuDom = findParent( - evt.target as Element, + target, (node: Node & Element) => !!node && node.nodeType === 1 &&