UNPKG

kickstart-node

Version:

A front-end framework for clean HTML and fast performance

37 lines (27 loc) 970 B
nav = (el) -> # Accept both strings and elements. $navbar = if typeof el == 'string' then k$.$(el) else el try # Wire up menu items $menuItems = $navbar.querySelectorAll('ul > li') # Prune items that don't contain uls _$menuItems = new Array() for $menuItem in $menuItems if $menuItem.querySelectorAll('ul').length and !$menuItem.querySelectorAll('[role="button"]').length _$menuItems.push $menuItem $menuItems = _$menuItems for $menuItem in $menuItems # Mark as a menu item $menuItem.classList.add 'menu-item' catch e console.error "Could not instantiate as a nav.", e.message $button = $navbar.querySelector('.navbar-title button') if $button $button.addEventListener 'click', -> $nav = $navbar.querySelector('nav') if $nav.classList.contains 'expand' $nav.classList.remove 'expand' else $nav.classList.add 'expand' k$.nav = nav module.exports = nav