@@ -52,18 +52,16 @@ export const overflowBalloon = (content, options = null) => {
5252 * @param {HTMLElement } newTriggerNode the new dom node of the component
5353 */
5454 onTriggerNodeChange : function ( previousTriggerNode , newTriggerNode ) {
55- // if (previousTriggerNode) {
56- // const node = stretch ? previousTriggerNode.parentNode : previousTriggerNode;
57-
58- // node.removeEventListener('mouseover', this.showPopover);
59- // node.removeEventListener('mouseleave', this.hidePopover);
60- // }
55+ if ( previousTriggerNode ) {
56+ previousTriggerNode . removeEventListener ( 'mouseover' , this . prevousNodeMouseoverCallback ) ;
57+ previousTriggerNode . removeEventListener ( 'mouseleave' , this . hidePopover ) ;
58+ }
6159
6260 if ( newTriggerNode ) {
6361 const node = stretch ? newTriggerNode . parentNode : newTriggerNode ;
6462 const key = newTriggerNode . getAttribute ( 'data-popover-key' ) ;
6563
66- node . addEventListener ( 'mouseover' , ( ) => {
64+ const newNodeMouseoverCallback = ( ) => {
6765 this . showPopover ( ) ;
6866 const selector = `.popover[data-popover-key="${ key } "]` ;
6967 const contentNode = document . querySelector ( selector ) ;
@@ -77,7 +75,11 @@ export const overflowBalloon = (content, options = null) => {
7775 node . addEventListener ( 'mouseleave' , this . hidePopover ) ;
7876 this . hidePopover ( ) ;
7977 } ) ;
80- } ) ;
78+ } ;
79+
80+ this . prevousNodeMouseoverCallback = newNodeMouseoverCallback ;
81+
82+ node . addEventListener ( 'mouseover' , newNodeMouseoverCallback ) ;
8183 node . addEventListener ( 'mouseleave' , this . hidePopover ) ;
8284 }
8385 } ,
0 commit comments