make text of text-only nav item with children clickable
authorDan Allen <dan@opendevise.com>
Sun, 5 Aug 2018 20:38:47 +0000 (14:38 -0600)
committerDan Allen <dan@opendevise.com>
Sun, 5 Aug 2018 23:06:36 +0000 (23:06 +0000)
preview-site-src/ui-model.yml
src/js/01-navigation.js

index 20a364f..a227ca6 100644 (file)
@@ -87,8 +87,6 @@ page:
       url: '#liber-recusabo'
       urlType: fragment
     - content: Reference
-      url: '#'
-      urlType: fragment
       items:
       - content: Keyboard Shortcuts
         url: '#'
index 3272cf9..29e8e1e 100644 (file)
       menuState.expandedItems = getExpandedItems()
       saveNavState()
     })
+    var navItemSpan = findNextElement(btn, '.nav-text')
+    if (navItemSpan) {
+      navItemSpan.style.cursor = 'pointer'
+      navItemSpan.addEventListener('click', function () {
+        li.classList.toggle('is-active')
+        menuState.expandedItems = getExpandedItems()
+        saveNavState()
+      })
+    }
   })
 
   find('.nav-item', menuPanel).forEach(function (item, idx) {
   function find (selector, from) {
     return [].slice.call((from || document).querySelectorAll(selector))
   }
+
+  function findNextElement (from, selector) {
+    var el
+    if ('nextElementSibling' in from) {
+      el = from.nextElementSibling
+    } else {
+      el = from
+      while ((el = el.nextSibling) && el.nodeType !== 1);
+    }
+    return el && selector ? el[el.matches ? 'matches' : 'msMatchesSelector'](selector) && el : el
+  }
 })()