Sha256: b127fa954404d24610f3c08b4fd2c16eb27f17849588b1950f6333bf91eb08fd

Contents?: true

Size: 1.3 KB

Versions: 178

Compression:

Stored size: 1.3 KB

Contents

const NAV_LINKS_SELECTOR = '.nav-link:not(.dropdown-toggle)';  // Bootstrap 4 class
const MENU_COLLAPSE_JQUERY = $('#headerGlobalNavbarContent'); // Bootstrap 4 crap that requires $() w/ an ID from the HTML
const MENU_COLLAPSE = 'headerGlobalNavbarContent';  // ID from the HTML
const HIDE = 'hide';  // Bootstrap 4 class
const SHOW = 'show';  // Bootstrap 4 class

function hideBootstrapMenu() {
  MENU_COLLAPSE_JQUERY.collapse(HIDE);
}

function checkIfMenuIsOpen() {
  if ( document.getElementById(MENU_COLLAPSE).classList.contains(SHOW) ) {
    return true;
  }
  return false;
}

function hideMenuIfOpen(menuIsOpen) {
  if ( menuIsOpen ) {
    hideBootstrapMenu();
  } else {
    return;
  }
}

function clickHandlerFunction(e) {
  if ( !e.target.matches(NAV_LINKS_SELECTOR) )  // Bail out of the rest of the code if the click event's target is not what we want!
    return;

  if ( e.target.classList.contains('dropdown-toggle') )
    return;


  const menuIsOpen = checkIfMenuIsOpen();

  hideMenuIfOpen(menuIsOpen);
}

function addEventListenerFunction(element, clickEvent) {
  element.addEventListener(clickEvent, clickHandlerFunction, false);
}

function closeMenuOnClick() {
  const clickEvent = 'click';
  const element = document;

  addEventListenerFunction(element, clickEvent);
}

export default closeMenuOnClick;

Version data entries

178 entries across 178 versions & 3 rubygems

Version Path
kcc-gem-theme-core-0.0.3 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-core-0.0.2 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-core-0.0.1 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.14.1 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.14.0 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.13.0 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.12.2 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.12.1 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.12.0 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.11.1 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.11.0 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.10.0 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.9.1 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.9.0 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.8.6 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.8.5 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.8.4 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.8.3 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.8.2 assets/js/nav/megaNav/closeMegaNavOnClick.js
kcc-gem-theme-2.8.1 assets/js/nav/megaNav/closeMegaNavOnClick.js