@@ -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 ;
@@ -170,15 +171,26 @@ var ReactTooltip = function (_Component) {
170171 value : function bindListener ( ) {
171172 var targetArray = this . getTargetArray ( ) ;
172173
173- var dataEvent = undefined ;
174+ 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 ) ;
@@ -197,7 +209,7 @@ var ReactTooltip = function (_Component) {
197209 key : 'unbindListener' ,
198210 value : function unbindListener ( ) {
199211 var targetArray = document . querySelectorAll ( '[data-tip]' ) ;
200- var dataEvent = undefined ;
212+ var dataEvent = void 0 ;
201213
202214 for ( var i = 0 ; i < targetArray . length ; i ++ ) {
203215 dataEvent = this . state . event || targetArray [ i ] . getAttribute ( 'data-event' ) ;
@@ -220,7 +232,7 @@ var ReactTooltip = function (_Component) {
220232 value : function getTargetArray ( ) {
221233 var id = this . props . id ;
222234
223- var targetArray = undefined ;
235+ var targetArray = void 0 ;
224236
225237 if ( id === undefined ) {
226238 targetArray = document . querySelectorAll ( '[data-tip]:not([data-for])' ) ;
@@ -269,7 +281,7 @@ var ReactTooltip = function (_Component) {
269281 value : function checkStatus ( e ) {
270282 var show = this . state . show ;
271283
272- var isCapture = undefined ;
284+ var isCapture = void 0 ;
273285
274286 if ( e . currentTarget . getAttribute ( 'data-iscapture' ) ) {
275287 isCapture = e . currentTarget . getAttribute ( 'data-iscapture' ) === 'true' ;
@@ -320,7 +332,7 @@ var ReactTooltip = function (_Component) {
320332 /* Detect multiline */
321333 var regexp = / < b r \s * \/ ? > / ;
322334 var multiline = e . currentTarget . getAttribute ( 'data-multiline' ) ? e . currentTarget . getAttribute ( 'data-multiline' ) : this . props . multiline ? this . props . multiline : false ;
323- var tooltipText = undefined ;
335+ var tooltipText = void 0 ;
324336 var multilineCount = 0 ;
325337 if ( ! multiline || multiline === 'false' || ! regexp . test ( originTooltip ) ) {
326338 tooltipText = originTooltip ;
@@ -455,8 +467,8 @@ var ReactTooltip = function (_Component) {
455467 var targetHeight = currentTarget . clientHeight ;
456468 var windoWidth = window . innerWidth ;
457469 var windowHeight = window . innerHeight ;
458- var x = undefined ;
459- var y = undefined ;
470+ var x = void 0 ;
471+ var y = void 0 ;
460472 var defaultTopY = targetTop - tipHeight - 8 ;
461473 var defaultBottomY = targetTop + targetHeight + 8 ;
462474 var defaultLeftX = targetLeft - tipWidth - 6 ;
@@ -728,8 +740,8 @@ var ReactTooltip = function (_Component) {
728740 }
729741 firstCount ++ ;
730742 }
731- for ( var i = string . length - 1 ; i >= 0 ; i -- ) {
732- if ( string [ i ] !== ' ' ) {
743+ for ( var _i = string . length - 1 ; _i >= 0 ; _i -- ) {
744+ if ( string [ _i ] !== ' ' ) {
733745 break ;
734746 }
735747 lastCount ++ ;
@@ -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