Explorar el Código

Capture events to <aside> element

@soyjavi hace 14 años
padre
commit
0c20d08178
Se han modificado 1 ficheros con 43 adiciones y 6 borrados
  1. 43 6
      src/boot/Lungo.Boot.Events.js

+ 43 - 6
src/boot/Lungo.Boot.Events.js

@@ -1,6 +1,6 @@
-/** 
+/**
  * Initialize the automatic DOM UI events
- * 
+ *
  * @namespace LUNGO.Boot
  * @class Events
  *
@@ -20,10 +20,12 @@ LUNGO.Boot.Events = (function(lng, undefined) {
         var touch_move_event  = 'TOUCH_MOVE';
         var touch_start_event = 'TOUCH_START';
         var orientation_change = 'ORIENTATION_CHANGE';
-        var target_selector   = 'a[href][data-target]';
+        var target_selector = 'a[href][data-target]';
+        var target_selector_from_aside = 'ASIDE a[href][data-target]';
 
         lng.Dom.Event.listener(document, touch_move_event, _iScroll);
         lng.Dom.Event.listener(window, orientation_change, _changeOrientation);
+        lng.Dom.Event.live(target_selector_from_aside, touch_start_event, _hideAside);
         lng.Dom.Event.live(target_selector, touch_start_event, _loadTarget);
     };
 
@@ -35,14 +37,39 @@ LUNGO.Boot.Events = (function(lng, undefined) {
         lng.View.Resize.toolbars();
     };
 
+    var _hideAside = function(event) {
+        event.preventDefault();
+
+        var link = lng.Dom.query(this);
+        var section_id =  _getParentIdOfElement(link);
+
+        lng.View.Aside.toggle(section_id);
+    };
+
     var _loadTarget = function(event) {
         event.preventDefault();
 
         var link = lng.Dom.query(this);
-        var target_id = link.attr('href');
+        _selectTarget(link);
+    };
+
+    var _selectTarget = function(link) {
         var target_type = link.data('target');
 
-        (target_type === 'section') ? _goSection(target_id) : _goArticle(link);
+        switch(target_type) {
+            case 'section':
+                var target_id = link.attr('href');
+                _goSection(target_id);
+                break;
+
+            case 'article':
+                _goArticle(link);
+                break;
+
+            case 'aside':
+                _goAside(link);
+                break;
+        }
     };
 
     var _goSection = function(id) {
@@ -54,12 +81,22 @@ LUNGO.Boot.Events = (function(lng, undefined) {
     };
 
     var _goArticle = function(element) {
-        var section_id =  '#' + element.parents('section').attr('id');
+        var section_id =  _getParentIdOfElement(element);
         var article_id =  element.attr('href');
 
         lng.Router.article(section_id, article_id);
     };
 
+    var _goAside = function(element) {
+        var section_id = _getParentIdOfElement(element);
+        lng.View.Aside.toggle(section_id);
+    };
+
+    var _getParentIdOfElement = function(element) {
+        var parent_id = '#' + element.parents('section').attr('id');
+        return parent_id;
+    };
+
     return {
         start: start
     };