diff --git a/src/dom/DomEvent.js b/src/dom/DomEvent.js index 568dc130..69f4c6c0 100644 --- a/src/dom/DomEvent.js +++ b/src/dom/DomEvent.js @@ -23,8 +23,17 @@ var DomEvent = /** @lends DomEvent */{ for (var type in events) { var func = events[type], parts = type.split(/[\s,]+/g); - for (var i = 0, l = parts.length; i < l; i++) - el.addEventListener(parts[i], func, false); + for (var i = 0, l = parts.length; i < l; i++) { + var eventName = parts[i]; + // For touchstart/touchmove events on document, we need to explicitely + // declare that event is not passive (can be prevented). + // Otherwise chrome browser would ignore event.preventDefault() calls. + // See #1501 and https://www.chromestatus.com/features/5093566007214080 + var options = el === document && (eventName === 'touchstart'|| eventName === 'touchmove') + ? {passive: false} + : false; + el.addEventListener(eventName, func, options); + } } } },