jquery - How to open a menu with keypresses? -
i trying desing first website me. have menu, hidden default. when press on button in navbar, opens fine.
but want add possibility via keys too. m = open menu ; esc = close menu ;
$(document).keydown(function(e) { if (e.keycode == 77) {$('#menu').collapse('show') ;} ; if (e.keycode == 27) {$('#menu').collapse('hide') ;} ; }) ; while works fine, problem is, if press m key twice or more in row, without pressing esc in between, menu wont open again. same esc key.
additionally, when menu opened, , press m re-opens, ugly.
so tried save state of menu in var called menutoggled.
why doesnt work??
$(document).ready(function() { //different stuff... var menutoggled = 0 ; } ; $(document).keydown(function(e) { if (e.keycode == 77) { if (menutoggled == 0) {$('#menu').collapse('show') ; var menutoggled = 1 ;} } ; if (e.keycode == 27) { if (menutoggled == 1) {$('#menu').collapse('hide') ; var menutoggled = 0 ;} } ; }); it appears, jquery doesnt enter keycode-if's, because tried fire .alert('test') ; event , didnt work in "second" code.
var menutoggled = false; $(document).keydown(function(e){ var action = false; switch(e.which){ case 77: if(!menutoggled) action = 'show'; break; case 27: if(menutoggled) action = 'hide'; break; }; if(action !== false){ $('#menu').collapse(action); menutoggled = !menutoggled; e.preventdefault(); } });
Comments
Post a Comment