1jQuery(document).ready(function ($) { 2 "use strict"; 3 var openMenuButton = $(".menu-offconvas-mobile-only .toggle-mobile-menu"); 4 var closeMenuButton = $("#smobile-menu .smenu-hide"); 5 openMenuButton.click(function (e) { 6 e.preventDefault(); // don't grab focus 7 openMenuButton.toggleClass("menu-is-active"); 8 if (openMenuButton.hasClass("menu-is-active")) { 9 // open the menu 10 closeMenuButton.first().focus(); 11 $(document).off("keydown"); 12 $(document).on("keydown", function (e) { 13 if (e.keyCode === 27) { 14 // escape to close popout menu 15 e.preventDefault(); 16 openMenuButton.trigger("click"); 17 } 18 }); 19 20 closeMenuButton.off("keydown"); 21 closeMenuButton.on("keydown", function (e) { 22 if (e.keyCode === 13) { 23 e.preventDefault(); 24 // enter on closemenubtn to close menu 25 openMenuButton.trigger("click"); 26 } 27 if (e.keyCode === 9 && e.shiftKey) { 28 e.preventDefault(); 29 // cycle to last element if shift-tabbing first element 30 $("#smobile-menu #primary-menu li a").last().focus(); 31 } 32 }); 33 34 $("#smobile-menu #primary-menu li a").last().off("keydown"); 35 $("#smobile-menu #primary-menu li a") 36 .last() 37 .on("keydown", function (e) { 38 if (e.keyCode === 9 && !e.shiftKey) { 39 e.preventDefault(); 40 //cycle back to start if tabbing last element 41 closeMenuButton.focus(); 42 } 43 }); 44 } else { 45 // close the menu 46 $(document).off("keydown"); 47 closeMenuButton.off("keydown"); 48 $("#smobile-menu #primary-menu li a").last().off("keydown"); 49 openMenuButton.first().focus(); 50 } 51 }); 52});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.