@@ -101,6 +101,7 @@ var ReactTooltip = function (_Component) {
101101 delayHide : 0 ,
102102 delayShow : 0 ,
103103 event : props . event || null ,
104+ eventOff : props . eventOff || null ,
104105 isCapture : props . isCapture || false
105106 } ;
106107 _this . delayShowLoop = null ;
@@ -171,14 +172,25 @@ var ReactTooltip = function (_Component) {
171172 var targetArray = this . getTargetArray ( ) ;
172173
173174 var dataEvent = void 0 ;
175+ var dataEventOff = void 0 ;
174176 for ( var i = 0 ; i < targetArray . length ; i ++ ) {
175177 if ( targetArray [ i ] . getAttribute ( 'currentItem' ) === null ) {
176178 targetArray [ i ] . setAttribute ( 'currentItem' , 'false' ) ;
177179 }
178180 dataEvent = this . state . event || targetArray [ i ] . getAttribute ( 'data-event' ) ;
179181 if ( dataEvent ) {
180- targetArray [ i ] . removeEventListener ( dataEvent , this . checkStatus ) ;
181- targetArray [ i ] . addEventListener ( dataEvent , this . checkStatus , false ) ;
182+ dataEventOff = this . state . eventOff || targetArray [ i ] . getAttribute ( 'data-event-off' ) ;
183+ // if off event is specified, we will show tip on data-event and hide it on data-event-off
184+ if ( dataEventOff ) {
185+ targetArray [ i ] . removeEventListener ( dataEvent , this . showTooltip ) ;
186+ targetArray [ i ] . addEventListener ( dataEvent , this . showTooltip , false ) ;
187+
188+ targetArray [ i ] . removeEventListener ( dataEventOff , this . hideTooltip ) ;
189+ targetArray [ i ] . addEventListener ( dataEventOff , this . hideTooltip , false ) ;
190+ } else {
191+ targetArray [ i ] . removeEventListener ( dataEvent , this . checkStatus ) ;
192+ targetArray [ i ] . addEventListener ( dataEvent , this . checkStatus , false ) ;
193+ }
182194 } else {
183195 targetArray [ i ] . removeEventListener ( 'mouseenter' , this . showTooltip ) ;
184196 targetArray [ i ] . addEventListener ( 'mouseenter' , this . showTooltip , false ) ;
@@ -757,6 +769,7 @@ ReactTooltip.propTypes = {
757769 delayHide : _react . PropTypes . number ,
758770 delayShow : _react . PropTypes . number ,
759771 event : _react . PropTypes . any ,
772+ eventOff : _react . PropTypes . any ,
760773 watchWindow : _react . PropTypes . bool ,
761774 isCapture : _react . PropTypes . bool
762775} ;
0 commit comments