Skip to content

Instantly share code, notes, and snippets.

@addisonhall
Created September 22, 2014 19:13
Show Gist options
  • Save addisonhall/522bff6e0d9ef56435b9 to your computer and use it in GitHub Desktop.
Save addisonhall/522bff6e0d9ef56435b9 to your computer and use it in GitHub Desktop.
Bootstrapify Business Catalyst menus and add selected states
// Grab URL for use elsewhere
// Uses Purl plugin: https://github.com/allmarkedup/purl
var url = $.url();
// Set up reusable elements
var $mainNav, $sectionNav;
$mainNav = $('#main-nav');
$sectionNav = $('#section-nav');
// Insert Bootstrap menu elements
$mainNav.find('li.dropdown > a').addClass('dropdown-toggle').attr('data-toggle','dropdown').append(' <b class="caret"></b>');
$mainNav.find('li.dropdown > ul').removeClass('nav navbar-nav').addClass('dropdown-menu');
// Main nav selected states
$mainNav.find('ul.nav > li > a').each(function() {
var mainLink = $(this).attr('href').replace('/', '');
if (mainLink == url.segment(1)) {
$(this).parent().addClass('active');
}
});
// Build section nav from main nav drop-downs
$mainNav.find('ul li.active > ul').clone().appendTo('#section-nav');
// Reset classes for section nav
$sectionNav.find('ul').removeClass('dropdown-menu').addClass('nav nav-pills nav-stacked');
// Section nav selected states
$sectionNav.find('a').each(function() {
var subLink = $(this).attr('href');
if (subLink == url.attr('path')) {
$(this).parent().addClass('active');
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment