Skip to content

Commit 62efd5b

Browse files
committed
Listen and respond to both mouse and touch events
1 parent 594057e commit 62efd5b

File tree

1 file changed

+13
-39
lines changed

1 file changed

+13
-39
lines changed

interact.js

Lines changed: 13 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -228,16 +228,6 @@ var document = window.document,
228228
prepared = null,
229229
styleCursor = true,
230230

231-
// User interaction event types. will be set depending on touch input is
232-
// supported
233-
downEvent,
234-
upEvent,
235-
moveEvent,
236-
overEvent,
237-
outEvent,
238-
enterEvent,
239-
leaveEvent,
240-
241231
// because Webkit and Opera still use 'mousewheel' event type
242232
wheelEvent = 'onmousewheel' in document? 'mousewheel': 'wheel',
243233

@@ -359,7 +349,7 @@ var document = window.document,
359349
event.target = event.srcElement;
360350
event.currentTarget = element;
361351

362-
if (event.type.match(/mouse|click/)) {
352+
if (/mouse|click/.test(event.type)) {
363353
event.pageX = event.clientX + document.documentElement.scrollLeft;
364354
event.pageY = event.clientY + document.documentElement.scrollTop;
365355
}
@@ -437,26 +427,6 @@ var document = window.document,
437427
};
438428
}());
439429

440-
// Set event types to be used depending on input available
441-
if (supportsTouch) {
442-
downEvent = 'touchstart',
443-
upEvent = 'touchend',
444-
moveEvent = 'touchmove',
445-
overEvent = 'touchover',
446-
outEvent = 'touchout';
447-
enterEvent = 'touchover',
448-
leaveEvent = 'touchout';
449-
}
450-
else {
451-
downEvent = 'mousedown',
452-
upEvent = 'mouseup',
453-
moveEvent = 'mousemove',
454-
overEvent = 'mouseover',
455-
outEvent = 'mouseout';
456-
enterEvent = 'mouseenter',
457-
leaveEvent = 'mouseleave';
458-
}
459-
460430
/**
461431
* @private
462432
* @returns{String} action to be performed - drag/resize[axes]/gesture
@@ -1284,7 +1254,7 @@ var document = window.document,
12841254
endEvent.ds = endEvent.scale;
12851255
target.fire(endEvent);
12861256
}
1287-
else if (event.type === upEvent && target && pointerIsDown && !pointerWasMoved) {
1257+
else if ((event.type === 'mouseup' || event.type === 'touchend') && target && pointerIsDown && !pointerWasMoved) {
12881258
var click = {};
12891259

12901260
for (var prop in event) {
@@ -1370,8 +1340,10 @@ var document = window.document,
13701340
this._element = element,
13711341
this._iEvents = this._iEvents || {};
13721342

1373-
events.add(this, moveEvent, pointerHover);
1374-
events.add(this, downEvent, pointerDown);
1343+
events.add(this, 'mousemove' , pointerHover);
1344+
events.add(this, 'mousedown' , pointerDown );
1345+
events.add(this, 'touchmove' , pointerHover);
1346+
events.add(this, 'touchstart', pointerDown );
13751347

13761348
interactables.push(this);
13771349

@@ -2191,11 +2163,13 @@ var document = window.document,
21912163
};
21922164

21932165

2194-
events.add(docTarget , moveEvent , pointerMove );
2195-
events.add(docTarget , overEvent , pointerOver );
2196-
events.add(docTarget , upEvent , docPointerUp);
2197-
events.add(docTarget , 'touchcancel', docPointerUp);
2198-
events.add(windowTarget, 'blur' , docPointerUp);
2166+
events.add(docTarget , 'mousemove' , pointerMove );
2167+
events.add(docTarget , 'touchmove' , pointerMove );
2168+
events.add(docTarget , 'mouseover' , pointerOver );
2169+
events.add(docTarget , 'mouseup' , docPointerUp);
2170+
events.add(docTarget , 'touchend' , docPointerUp);
2171+
events.add(docTarget , 'touchcancel' , docPointerUp);
2172+
events.add(windowTarget, 'blur' , docPointerUp);
21992173

22002174
// For IE's lack of preventDefault
22012175
events.add(docTarget, 'selectstart', function (e) {

0 commit comments

Comments
 (0)