Skip to content

Commit 9ce5b2f

Browse files
committed
fix to many events
1 parent 1a72c12 commit 9ce5b2f

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

lib/public/components/common/popover/overflowBalloon.js

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,20 +61,26 @@ export const overflowBalloon = (content, options = null) => {
6161
const node = stretch ? newTriggerNode.parentNode : newTriggerNode;
6262
const key = newTriggerNode.getAttribute('data-popover-key');
6363

64+
const contentNodeMouseoverCallback = () => {
65+
node.removeEventListener('mouseleave', this.hidePopover);
66+
this.showPopover();
67+
};
68+
69+
const contentNodeMousleaveCallback = () => {
70+
node.addEventListener('mouseleave', this.hidePopover);
71+
this.hidePopover();
72+
};
73+
6474
const newNodeMouseoverCallback = () => {
6575
this.showPopover();
6676
const selector = `.popover[data-popover-key="${key}"]`;
6777
const contentNode = document.querySelector(selector);
6878

69-
contentNode.addEventListener('mouseover', () => {
70-
node.removeEventListener('mouseleave', this.hidePopover);
71-
this.showPopover();
72-
});
79+
contentNode.removeEventListener('mouseover', contentNodeMouseoverCallback);
80+
contentNode.removeEventListener('mouseleave', contentNodeMousleaveCallback);
7381

74-
contentNode.addEventListener('mouseleave', () => {
75-
node.addEventListener('mouseleave', this.hidePopover);
76-
this.hidePopover();
77-
});
82+
contentNode.addEventListener('mouseover', contentNodeMouseoverCallback);
83+
contentNode.addEventListener('mouseleave', contentNodeMousleaveCallback);
7884
};
7985

8086
this.prevousNodeMouseoverCallback = newNodeMouseoverCallback;

0 commit comments

Comments
 (0)