mirror of
https://gitee.com/antv/g6.git
synced 2024-12-02 19:58:46 +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')
|
||||
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');
|
||||
@ -166,9 +170,9 @@ export default class Menu extends Base {
|
||||
// 隐藏菜单后需要移除事件监听
|
||||
document.body.removeEventListener('click', this.get('handler'));
|
||||
|
||||
const handleMenuClick = this.get('handleMenuClick')
|
||||
if (handleMenuClick) {
|
||||
menuDom.removeEventListener('click', handleMenuClick)
|
||||
const handleMenuClickWrapper = this.get('handleMenuClickWrapper');
|
||||
if (handleMenuClickWrapper) {
|
||||
menuDom.removeEventListener('click', handleMenuClickWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
@ -176,9 +180,9 @@ export default class Menu extends Base {
|
||||
const menu = this.get('menu')
|
||||
const handler = this.get('handler');
|
||||
|
||||
const handleMenuClick = this.get('handleMenuClick')
|
||||
if (handleMenuClick) {
|
||||
menu.removeEventListener('click', handleMenuClick)
|
||||
const handleMenuClickWrapper = this.get('handleMenuClickWrapper');
|
||||
if (handleMenuClickWrapper) {
|
||||
menu.removeEventListener('click', handleMenuClickWrapper);
|
||||
}
|
||||
|
||||
if (menu) {
|
||||
|
Loading…
Reference in New Issue
Block a user