diff --git a/example/events.html b/example/events.html
index 5a7cea7279..b7a6291375 100644
--- a/example/events.html
+++ b/example/events.html
@@ -7,8 +7,12 @@
-
+
diff --git a/example/events.js b/example/events.js
index 586678b12e..a0a0ca324f 100644
--- a/example/events.js
+++ b/example/events.js
@@ -32,8 +32,6 @@ window.FM.on('swipe', function(e) {
type: 'swipe',
event: e
});
-
- e.target.classList.add('swipeleft');
});
window.FM.on('swiperight', function(e) {
console.log('GOT SWIPE RIGHT', e);
diff --git a/js/framework/framework-events.js b/js/framework/framework-events.js
index 09f335acd4..f74e8ef6b4 100644
--- a/js/framework/framework-events.js
+++ b/js/framework/framework-events.js
@@ -21,8 +21,9 @@
*/
trigger: function(eventType, data) {
// TODO: Do we need to use the old-school createEvent stuff?
+ var event = new CustomEvent(eventType, data);
- window.dispatchEvent(new CustomEvent(eventType, data));
+ data.target && data.target.dispatchEvent(event) || window.dispatchEvent(event);
},
/**
diff --git a/js/framework/framework-gestures.js b/js/framework/framework-gestures.js
index b56b04cdd3..680b20e84a 100644
--- a/js/framework/framework-gestures.js
+++ b/js/framework/framework-gestures.js
@@ -12,10 +12,7 @@
framework.Gesture.Touch = {
handle: function(e) {
if(e.type == 'touchstart') {
- framework.EventController.trigger('touch', {
- cancelable: true,
- bubbles: true
- });
+ framework.GestureController.triggerGestureEvent('touch', e);
}
}
};
@@ -45,10 +42,7 @@
break;
case 'touchend':
if(this._hasMoved == false) {
- framework.EventController.trigger('tap', {
- cancelable: true,
- bubbles: true
- });
+ framework.GestureController.triggerGestureEvent('tap', e);
}
break;
}
@@ -59,10 +53,7 @@
framework.Gesture.Release = {
handle: function(e) {
if(e.type === 'touchend') {
- framework.EventController.trigger('release', {
- cancelable: true,
- bubbles: true
- });
+ framework.GestureController.triggerGestureEvent('release', e);
}
}
};
@@ -78,16 +69,8 @@
// trigger swipe events, both a general swipe,
// and a directional swipe
- framework.EventController.trigger('swipe', {
- gesture: e,
- cancelable: true,
- bubbles: true
- });
- framework.EventController.trigger('swipe' + e.direction, {
- gesture: e,
- cancelable: true,
- bubbles: true
- });
+ framework.GestureController.triggerGestureEvent('swipe', e);
+ framework.GestureController.triggerGestureEvent('swipe' + e.direction, e);
}
}
}
@@ -102,6 +85,10 @@
framework.Gesture.Release,
],
+ triggerGestureEvent: function(type, e) {
+ framework.EventController.trigger(type, framework.Utils.extend({}, e));
+ },
+
_annotateGestureEvent: function(e) {
// If this doesn't have touches, we need to grab the last set that did
var touches = e.touches;