feat: clear contextmenu side effect in web component #219
This commit is contained in:
@@ -61,7 +61,7 @@ export class ContextMenu {
|
|||||||
// 菜单权限
|
// 菜单权限
|
||||||
this.container.addEventListener('contextmenu', this._proxyContextMenuEvent)
|
this.container.addEventListener('contextmenu', this._proxyContextMenuEvent)
|
||||||
// 副作用处理
|
// 副作用处理
|
||||||
document.addEventListener('mousedown', this._handleEffect)
|
document.addEventListener('mousedown', this._handleSideEffect)
|
||||||
}
|
}
|
||||||
|
|
||||||
public removeEvent() {
|
public removeEvent() {
|
||||||
@@ -69,7 +69,7 @@ export class ContextMenu {
|
|||||||
'contextmenu',
|
'contextmenu',
|
||||||
this._proxyContextMenuEvent
|
this._proxyContextMenuEvent
|
||||||
)
|
)
|
||||||
document.removeEventListener('mousedown', this._handleEffect)
|
document.removeEventListener('mousedown', this._handleSideEffect)
|
||||||
}
|
}
|
||||||
|
|
||||||
private _proxyContextMenuEvent = (evt: MouseEvent) => {
|
private _proxyContextMenuEvent = (evt: MouseEvent) => {
|
||||||
@@ -99,11 +99,12 @@ export class ContextMenu {
|
|||||||
evt.preventDefault()
|
evt.preventDefault()
|
||||||
}
|
}
|
||||||
|
|
||||||
private _handleEffect = (evt: MouseEvent) => {
|
private _handleSideEffect = (evt: MouseEvent) => {
|
||||||
if (this.contextMenuContainerList.length) {
|
if (this.contextMenuContainerList.length) {
|
||||||
// 点击非右键菜单内
|
// 点击非右键菜单内
|
||||||
|
const target = <Element>(evt?.composedPath()[0] || evt.target)
|
||||||
const contextMenuDom = findParent(
|
const contextMenuDom = findParent(
|
||||||
evt.target as Element,
|
target,
|
||||||
(node: Node & Element) =>
|
(node: Node & Element) =>
|
||||||
!!node &&
|
!!node &&
|
||||||
node.nodeType === 1 &&
|
node.nodeType === 1 &&
|
||||||
|
|||||||
Reference in New Issue
Block a user