/** * File keyboard-navigation.js. * * Handles to support keyboar navigation */ $ = jQuery jQuery(document).ready(function () { //keyboard navigation for mean menu var myEvents = { click: function(e) { if ( jQuery(this).hasClass('menu-item-has-children') ) { jQuery(this).find('.mean-expand').addClass('mean-clicked').text('-'); } jQuery(this).siblings('li').find('.mean-expand').removeClass('mean-clicked').text('+'); jQuery(this).children('.sub-menu').show().end().siblings('li').find('ul').hide(); }, keydown: function(e) { e.stopPropagation(); if (e.keyCode == 9) { if (!e.shiftKey && ( jQuery('.mean-bar li').index( jQuery(this) ) == ( jQuery('.mean-bar li').length-1 ) ) ){ jQuery('.meanclose').trigger('click'); } else if( jQuery('.mean-bar li').index( jQuery(this) ) == 0 ) { $('.meanclose').removeClass('onfocus'); } else if (e.shiftKey && jQuery('.mean-bar li').index(jQuery(this)) === 0) jQuery('.mean-bar ul:first > li:last').focus().blur(); } }, keyup: function(e) { e.stopPropagation(); if (e.keyCode == 9) { if (myEvents.cancelKeyup) myEvents.cancelKeyup = false; else myEvents.click.apply(this, arguments); } } } jQuery(document) .on('click', 'li', myEvents.click) .on('keydown', 'li', myEvents.keydown) .on('keyup', 'li', myEvents.keyup); jQuery('.mean-bar li').each(function(i) { this.tabIndex = i; }); /** * Desktop Hamburger Nav on focus out event */ jQuery( '.top-header-menu-wrapper .menu' ).on( 'focusout', function () { var $elem = jQuery( this ); // let the browser set focus on the newly clicked elem before check setTimeout(function () { if ( ! $elem.find( ':focus' ).length ) { jQuery( '.toggle' ).trigger( 'click' ); } }, 0); }); /** * Header Search from */ jQuery( document ).on( 'click','.toggle', function(){ $(this).toggleClass('close'); $(this).closest('.header-menu-holder').toggleClass('menu-open'); }); });