mirror of
https://gitee.com/antv/g6.git
synced 2024-12-03 04:08:32 +08:00
fix: handleMenuClick trigger multiple times
1. handleMenuClick listerner not removed on menu hide
This commit is contained in:
parent
55ab1fe74a
commit
c3b16ccee4
@ -118,7 +118,11 @@ export default class Menu extends Base {
|
|||||||
|
|
||||||
const handleMenuClick = this.get('handleMenuClick')
|
const handleMenuClick = this.get('handleMenuClick')
|
||||||
if (handleMenuClick) {
|
if (handleMenuClick) {
|
||||||
menuDom.addEventListener('click', handleMenuClick);
|
const handleMenuClickWrapper = (evt) => {
|
||||||
|
handleMenuClick(evt.target, e.item)
|
||||||
|
}
|
||||||
|
this.set('handleMenuClickWrapper', handleMenuClickWrapper)
|
||||||
|
menuDom.addEventListener('click', handleMenuClickWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
const graph: Graph = this.get('graph');
|
const graph: Graph = this.get('graph');
|
||||||
@ -166,9 +170,9 @@ export default class Menu extends Base {
|
|||||||
// 隐藏菜单后需要移除事件监听
|
// 隐藏菜单后需要移除事件监听
|
||||||
document.body.removeEventListener('click', this.get('handler'));
|
document.body.removeEventListener('click', this.get('handler'));
|
||||||
|
|
||||||
const handleMenuClick = this.get('handleMenuClick')
|
const handleMenuClickWrapper = this.get('handleMenuClickWrapper');
|
||||||
if (handleMenuClick) {
|
if (handleMenuClickWrapper) {
|
||||||
menuDom.removeEventListener('click', handleMenuClick)
|
menuDom.removeEventListener('click', handleMenuClickWrapper);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,9 +180,9 @@ export default class Menu extends Base {
|
|||||||
const menu = this.get('menu')
|
const menu = this.get('menu')
|
||||||
const handler = this.get('handler');
|
const handler = this.get('handler');
|
||||||
|
|
||||||
const handleMenuClick = this.get('handleMenuClick')
|
const handleMenuClickWrapper = this.get('handleMenuClickWrapper');
|
||||||
if (handleMenuClick) {
|
if (handleMenuClickWrapper) {
|
||||||
menu.removeEventListener('click', handleMenuClick)
|
menu.removeEventListener('click', handleMenuClickWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (menu) {
|
if (menu) {
|
||||||
|
Loading…
Reference in New Issue
Block a user