Skip to content

Commit cec73ac

Browse files
committed
Fixes #1
1 parent bcb6730 commit cec73ac

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

lib/draggable.js

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,28 @@ function matchesSelector(el, selector) {
4444
}
4545
}
4646

47+
function addEvent(el, event, handler) {
48+
if (!el) { return; }
49+
if (el.attachEvent) {
50+
el.attachEvent('on' + event, handler);
51+
} else if (el.addEventListener) {
52+
el.addEventListener(event, handler, true);
53+
} else {
54+
el['on' + event] = handler;
55+
}
56+
}
57+
58+
function removeEvent(el, event, handler) {
59+
if (!el) { return; }
60+
if (el.detachEvent) {
61+
el.detachEvent('on' + event, handler);
62+
} else if (el.removeEventListener) {
63+
el.removeEventListener(event, handler, true);
64+
} else {
65+
el['on' + event] = null;
66+
}
67+
}
68+
4769
module.exports = React.createClass({
4870
displayName: 'Draggable',
4971

@@ -229,7 +251,8 @@ module.exports = React.createClass({
229251

230252
this.props.onStart(e, createUIEvent(this));
231253

232-
window.addEventListener('mousemove', this.handleMouseMove);
254+
addEvent(window, 'mousemove', this.handleMouseMove);
255+
addEvent(window, 'mouseup', this.handleMouseUp);
233256
},
234257

235258
handleMouseUp: function (e) {
@@ -243,7 +266,8 @@ module.exports = React.createClass({
243266

244267
this.props.onStop(e, createUIEvent(this));
245268

246-
window.removeEventListener('mousemove', this.handleMouseMove);
269+
removeEvent(window, 'mousemove', this.handleMouseMove);
270+
removeEvent(window, 'mouseup', this.handleMouseUp);
247271
},
248272

249273
handleMouseMove: function (e) {

0 commit comments

Comments
 (0)