@@ -88,6 +88,7 @@ class ReactTooltip extends Component {
88
88
this . bind ( [
89
89
'showTooltip' ,
90
90
'updateTooltip' ,
91
+ 'checkSameTarget' ,
91
92
'hideTooltip' ,
92
93
'globalRebuild' ,
93
94
'globalShow' ,
@@ -186,7 +187,7 @@ class ReactTooltip extends Component {
186
187
target . addEventListener ( 'mousemove' , this . updateTooltip , isCaptureMode )
187
188
}
188
189
target . addEventListener ( 'mouseleave' , this . hideTooltip , isCaptureMode )
189
- target . addEventListener ( 'DOMNodeRemovedFromDocument' , this . hideTooltip , isCaptureMode )
190
+ target . addEventListener ( 'DOMNodeRemovedFromDocument' , this . checkSameTarget , isCaptureMode )
190
191
} )
191
192
192
193
// Global event to hide tooltip
@@ -220,7 +221,7 @@ class ReactTooltip extends Component {
220
221
target . removeEventListener ( 'mouseenter' , this . showTooltip , isCaptureMode )
221
222
target . removeEventListener ( 'mousemove' , this . updateTooltip , isCaptureMode )
222
223
target . removeEventListener ( 'mouseleave' , this . hideTooltip , isCaptureMode )
223
- target . removeEventListener ( 'DOMNodeRemovedFromDocument' , this . hideTooltip , isCaptureMode )
224
+ target . removeEventListener ( 'DOMNodeRemovedFromDocument' , this . checkSameTarget , isCaptureMode )
224
225
}
225
226
226
227
/**
@@ -337,6 +338,12 @@ class ReactTooltip extends Component {
337
338
}
338
339
}
339
340
341
+ checkSameTarget ( e , hasTarget ) {
342
+ if ( this . state . currentTarget === e . currentTarget ) {
343
+ this . hideTooltip ( e , hasTarget )
344
+ }
345
+ }
346
+
340
347
/**
341
348
* When mouse leave, hide tooltip
342
349
*/
@@ -445,15 +452,15 @@ class ReactTooltip extends Component {
445
452
if ( html ) {
446
453
return (
447
454
< wrapper className = { `${ tooltipClass } ${ extraClass } ` }
448
- { ...ariaProps }
449
- data-id = 'tooltip'
450
- dangerouslySetInnerHTML = { { __html : placeholder } } > </ wrapper >
455
+ { ...ariaProps }
456
+ data-id = 'tooltip'
457
+ dangerouslySetInnerHTML = { { __html : placeholder } } > </ wrapper >
451
458
)
452
459
} else {
453
460
return (
454
461
< wrapper className = { `${ tooltipClass } ${ extraClass } ` }
455
- { ...ariaProps }
456
- data-id = 'tooltip' > { placeholder } </ wrapper >
462
+ { ...ariaProps }
463
+ data-id = 'tooltip' > { placeholder } </ wrapper >
457
464
)
458
465
}
459
466
}
0 commit comments