$(function(){ var mainSel; var subnav = $('#sidebar'); $('body').keydown(function(e){ if(e.which==9){ e.preventDefault(); $('.nav_wrapper a').first().focus(); $(this).unbind('keydown') } }); $('.nav_wrapper>ul>li>a').keydown(function(e){ var el; switch(e.which) { case 37: //arrow left e.preventDefault(); $('.nav_wrapper .active').removeClass('active') mainSel = el = $(this).parent().prev().addClass('active').find('a').first(); break; case 39: //arrow right e.preventDefault(); $('.nav_wrapper .active').removeClass('active') mainSel = el = $(this).parent().next().addClass('active').find('a').first(); break; } if(el&&el[0]){ el.addClass('active').focus(); } }); if(subnav[0]){ subnav.find('li a').keydown(function(e){ var el; switch(e.which) { case 38: //arrow up e.preventDefault(); var el = $(this).parent().prev().find('a').last(); if(!el[0]){ el = $(this).parents('ul').not('.firstLevel').parent().find('a').first() } break; case 40: //arrow down e.preventDefault(); var el = $(this).next().find('a').first(); if(!el[0]){ el = $(this).parent().next().find('a').first(); } if(!el[0]){ el = $(this).parents('ul').not('.firstLevel').parent().next().find('a') } break; } if(el&&el[0]){ $(this).parents('.subnavigation').find('.active').removeClass('active') el.addClass('active').focus(); } }); } });