Просмотр исходного кода

Rollback to previous Event manager

@soyjavi 14 лет назад
Родитель
Сommit
fbed052719
2 измененных файлов с 47 добавлено и 21 удалено
  1. 5 9
      src/Lungo.Events.js
  2. 42 12
      src/dom/Lungo.Dom.Event.js

+ 5 - 9
src/Lungo.Events.js

@@ -18,12 +18,7 @@ LUNGO.Events = (function(lng, undefined) {
             TOUCH_END: 'touchend',
             TAP: 'tap',
             DOUBLE_TAP: 'doubletap',
-            ORIENTATION_CHANGE: 'orientationchange',
-            SWIPE:'swipe',
-            SWIPE_LEFT:'swipeLeft',
-            SWIPE_RIGHT:'swipeRight',
-            SWIPE_UP: 'swipeUp',
-            SWIPE_DOWN:'swipeDown'
+            ORIENTATION_CHANGE: 'orientationchange'
         },
         desktop: {
             TOUCH_START: 'click',
@@ -35,6 +30,9 @@ LUNGO.Events = (function(lng, undefined) {
         }
     };
 
+    var current_environment = lng.Environment.current();
+    var current_events = EVENTS[current_environment];
+
     /**
      * Returns the touch event based on an enumeration of LungoJS
      * and the current environment
@@ -45,8 +43,6 @@ LUNGO.Events = (function(lng, undefined) {
      * @return {string} Touch event based on the current environment
      */
     var get = function(eventName) {
-        var current_environment = lng.Environment.current();
-        var current_events = EVENTS[current_environment];
         return current_events[eventName];
     };
 
@@ -54,4 +50,4 @@ LUNGO.Events = (function(lng, undefined) {
         get: get
     };
 
-})(LUNGO);
+})(LUNGO);

+ 42 - 12
src/dom/Lungo.Dom.Event.js

@@ -66,7 +66,7 @@ LUNGO.Dom.Event = (function(lng, undefined) {
     };
 
     /**
-     * Add an event listener with event delegation if enviornment allows event.
+     * Add an event listener without event delegation
      *
      * @method delegate
      *
@@ -76,7 +76,7 @@ LUNGO.Dom.Event = (function(lng, undefined) {
      * @param  {Function} Callback function after the request
      */
     var delegate = function(selector, children_selector, event_name, callback) {
-      	if (typeof lng.Events.get(event_name) !== 'undefined') {
+        if (_isNotSpecialEvent(selector, event_name, callback)) {
             lng.Dom.query(selector).delegate(children_selector, lng.Events.get(event_name), callback);
         }
     };
@@ -109,18 +109,48 @@ LUNGO.Dom.Event = (function(lng, undefined) {
     };
 
     var _isNotSpecialEvent = function(selector, event_name, callback) {
-        var is_not_special_event = true;
+        var is_special_event = false;
+        /*
+        var SPECIAL_EVENTS = {
+            SWIPE: 'swipe',
+            SWIPE_LEFT: 'swipeLeft',
+            SWIPE_RIGHT: 'swipeRight',
+            SWIPE_UP: 'swipeUp',
+            SWIPE_DOWN: 'swipeDown',
+            DOUBLE_TAP: 'doubleTap'
+        };
+        var special_event = SPECIAL_EVENTS[event_name];
+        lng.Dom.query(selector)[special_event](callback);
+        */
 
-        if (event_name === 'DOUBLE_TAP') {
-            if (lng.Environment.isDesktop()) {
-                lng.Dom.query(selector).live(lng.Events.get(event_name), callback);
-            } else {
-                lng.Dom.query(selector).doubleTap(callback);
-            }
-            is_not_special_event = false;
+        switch(event_name) {
+            case 'SWIPE':
+                lng.Dom.query(selector).swipe(callback);
+                break;
+            case 'SWIPE_LEFT':
+                lng.Dom.query(selector).swipeLeft(callback);
+                break;
+            case 'SWIPE_RIGHT':
+                lng.Dom.query(selector).swipeRight(callback);
+                break;
+            case 'SWIPE_UP':
+                lng.Dom.query(selector).swipeUp(callback);
+                break;
+            case 'SWIPE_DOWN':
+                lng.Dom.query(selector).swipeDown(callback);
+                break;
+            case 'DOUBLE_TAP':
+                if (lng.Environment.isDesktop()) {
+                    lng.Dom.query(selector).live(lng.Events.get(event_name), callback);
+                } else {
+                    lng.Dom.query(selector).doubleTap(callback);
+                }
+                break;
+            default:
+                is_special_event = true;
         }
 
-        return is_not_special_event;
+        return is_special_event;
     };
 
     return {
@@ -133,4 +163,4 @@ LUNGO.Dom.Event = (function(lng, undefined) {
         listener: listener
     };
 
-})(LUNGO);
+})(LUNGO);