Skip to content

Commit d493f83

Browse files
committed
Merge remote-tracking branch 'upstream/master'
# Conflicts: # dist/react-tooltip.js # dist/react-tooltip.min.js # standalone/react-tooltip.js # standalone/react-tooltip.min.js
1 parent 552c37e commit d493f83

File tree

4 files changed

+32
-6
lines changed

4 files changed

+32
-6
lines changed

dist/react-tooltip.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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
};

dist/react-tooltip.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

standalone/react-tooltip.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ var ReactTooltip = function (_Component) {
153153
delayHide: 0,
154154
delayShow: 0,
155155
event: props.event || null,
156+
eventOff: props.eventOff || null,
156157
isCapture: props.isCapture || false
157158
};
158159
_this.delayShowLoop = null;
@@ -223,14 +224,25 @@ var ReactTooltip = function (_Component) {
223224
var targetArray = this.getTargetArray();
224225

225226
var dataEvent = void 0;
227+
var dataEventOff = void 0;
226228
for (var i = 0; i < targetArray.length; i++) {
227229
if (targetArray[i].getAttribute('currentItem') === null) {
228230
targetArray[i].setAttribute('currentItem', 'false');
229231
}
230232
dataEvent = this.state.event || targetArray[i].getAttribute('data-event');
231233
if (dataEvent) {
232-
targetArray[i].removeEventListener(dataEvent, this.checkStatus);
233-
targetArray[i].addEventListener(dataEvent, this.checkStatus, false);
234+
dataEventOff = this.state.eventOff || targetArray[i].getAttribute('data-event-off');
235+
// if off event is specified, we will show tip on data-event and hide it on data-event-off
236+
if (dataEventOff) {
237+
targetArray[i].removeEventListener(dataEvent, this.showTooltip);
238+
targetArray[i].addEventListener(dataEvent, this.showTooltip, false);
239+
240+
targetArray[i].removeEventListener(dataEventOff, this.hideTooltip);
241+
targetArray[i].addEventListener(dataEventOff, this.hideTooltip, false);
242+
} else {
243+
targetArray[i].removeEventListener(dataEvent, this.checkStatus);
244+
targetArray[i].addEventListener(dataEvent, this.checkStatus, false);
245+
}
234246
} else {
235247
targetArray[i].removeEventListener('mouseenter', this.showTooltip);
236248
targetArray[i].addEventListener('mouseenter', this.showTooltip, false);
@@ -809,6 +821,7 @@ ReactTooltip.propTypes = {
809821
delayHide: _react.PropTypes.number,
810822
delayShow: _react.PropTypes.number,
811823
event: _react.PropTypes.any,
824+
eventOff: _react.PropTypes.any,
812825
watchWindow: _react.PropTypes.bool,
813826
isCapture: _react.PropTypes.bool
814827
};

0 commit comments

Comments
 (0)