@@ -88,6 +88,7 @@ class ReactTooltip extends Component {
8888 this . bind ( [
8989 'showTooltip' ,
9090 'updateTooltip' ,
91+ 'checkSameTarget' ,
9192 'hideTooltip' ,
9293 'globalRebuild' ,
9394 'globalShow' ,
@@ -186,7 +187,7 @@ class ReactTooltip extends Component {
186187 target . addEventListener ( 'mousemove' , this . updateTooltip , isCaptureMode )
187188 }
188189 target . addEventListener ( 'mouseleave' , this . hideTooltip , isCaptureMode )
189- target . addEventListener ( 'DOMNodeRemovedFromDocument' , this . hideTooltip , isCaptureMode )
190+ target . addEventListener ( 'DOMNodeRemovedFromDocument' , this . checkSameTarget , isCaptureMode )
190191 } )
191192
192193 // Global event to hide tooltip
@@ -220,7 +221,7 @@ class ReactTooltip extends Component {
220221 target . removeEventListener ( 'mouseenter' , this . showTooltip , isCaptureMode )
221222 target . removeEventListener ( 'mousemove' , this . updateTooltip , isCaptureMode )
222223 target . removeEventListener ( 'mouseleave' , this . hideTooltip , isCaptureMode )
223- target . removeEventListener ( 'DOMNodeRemovedFromDocument' , this . hideTooltip , isCaptureMode )
224+ target . removeEventListener ( 'DOMNodeRemovedFromDocument' , this . checkSameTarget , isCaptureMode )
224225 }
225226
226227 /**
@@ -337,6 +338,12 @@ class ReactTooltip extends Component {
337338 }
338339 }
339340
341+ checkSameTarget ( e , hasTarget ) {
342+ if ( this . state . currentTarget === e . currentTarget ) {
343+ this . hideTooltip ( e , hasTarget )
344+ }
345+ }
346+
340347 /**
341348 * When mouse leave, hide tooltip
342349 */
@@ -445,15 +452,15 @@ class ReactTooltip extends Component {
445452 if ( html ) {
446453 return (
447454 < 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 >
451458 )
452459 } else {
453460 return (
454461 < wrapper className = { `${ tooltipClass } ${ extraClass } ` }
455- { ...ariaProps }
456- data-id = 'tooltip' > { placeholder } </ wrapper >
462+ { ...ariaProps }
463+ data-id = 'tooltip' > { placeholder } </ wrapper >
457464 )
458465 }
459466 }
0 commit comments