diff --git a/src/ngScenario/browserTrigger.js b/src/ngScenario/browserTrigger.js index bcbdb27acc29..f3c22fe5ff62 100644 --- a/src/ngScenario/browserTrigger.js +++ b/src/ngScenario/browserTrigger.js @@ -134,17 +134,15 @@ } function createTouchEvent(element, eventType, x, y) { - var evnt = document.createEvent('TouchEvent'); + var evnt = new Event(eventType); x = x || 0; y = y || 0; var touch = document.createTouch(window, element, Date.now(), x, y, x, y); var touches = document.createTouchList(touch); - var targetTouches = document.createTouchList(touch); - var changedTouches = document.createTouchList(touch); - evnt.initTouchEvent(eventType, true, true, window, null, 0, 0, 0, 0, false, false, false, false, - touches, targetTouches, changedTouches, 1, 0); + evnt.touches = touches; + return evnt; } }()); diff --git a/src/ngTouch/directive/ngClick.js b/src/ngTouch/directive/ngClick.js index 4d48f8e86a28..90274aba7322 100644 --- a/src/ngTouch/directive/ngClick.js +++ b/src/ngTouch/directive/ngClick.js @@ -221,10 +221,8 @@ ngTouch.directive('ngClick', ['$parse', '$timeout', '$rootElement', startTime = Date.now(); - // Use jQuery originalEvent - var originalEvent = event.originalEvent || event; - var touches = originalEvent.touches && originalEvent.touches.length ? originalEvent.touches : [originalEvent]; - var e = touches[0]; + var touches = event.touches && event.touches.length ? event.touches : [event]; + var e = touches[0].originalEvent || touches[0]; touchStartX = e.clientX; touchStartY = e.clientY; }); @@ -240,12 +238,9 @@ ngTouch.directive('ngClick', ['$parse', '$timeout', '$rootElement', element.on('touchend', function(event) { var diff = Date.now() - startTime; - // Use jQuery originalEvent - var originalEvent = event.originalEvent || event; - var touches = (originalEvent.changedTouches && originalEvent.changedTouches.length) ? - originalEvent.changedTouches : - ((originalEvent.touches && originalEvent.touches.length) ? originalEvent.touches : [originalEvent]); - var e = touches[0]; + var touches = (event.changedTouches && event.changedTouches.length) ? event.changedTouches : + ((event.touches && event.touches.length) ? event.touches : [event]); + var e = touches[0].originalEvent || touches[0]; var x = e.clientX; var y = e.clientY; var dist = Math.sqrt(Math.pow(x - touchStartX, 2) + Math.pow(y - touchStartY, 2)); diff --git a/src/ngTouch/swipe.js b/src/ngTouch/swipe.js index ff5416b2d51b..884e0800d83c 100644 --- a/src/ngTouch/swipe.js +++ b/src/ngTouch/swipe.js @@ -40,9 +40,11 @@ ngTouch.factory('$swipe', [function() { }; function getCoordinates(event) { - var originalEvent = event.originalEvent || event; - var touches = originalEvent.touches && originalEvent.touches.length ? originalEvent.touches : [originalEvent]; - var e = (originalEvent.changedTouches && originalEvent.changedTouches[0]) || touches[0]; + var touches = event.touches && event.touches.length ? event.touches : [event]; + var e = (event.changedTouches && event.changedTouches[0]) || + (event.originalEvent && event.originalEvent.changedTouches && + event.originalEvent.changedTouches[0]) || + touches[0].originalEvent || touches[0]; return { x: e.clientX,