Skrót klawiaturowy do dodawania/usuwania klasy diva

Cześć,

Mam w aplikacji admin toolbar:

[code=ruby]

...
...
# css body.admin #hub_bar { top:25px; }[/code] Chciałbym go pokazywać i usuwać za pomocą skrótu klawiaturowego i zapisywać stan w sesji.

Jak narazie udało mi się coś takiego:
używam do tego dwóch bibliotek jquery.cookies.js i keymaster.js

[code]if ($.cookie(‘adminBarVisible’) == ‘false’) {
$(‘body’).removeClass(‘admin’)
};
// powyższa część mi się nie podoba

key(‘tab + q’, function(){
if ($.cookie(‘adminBarVisible’) == ‘true’) {
$(‘body’).removeClass(‘admin’)
$.cookie(‘adminBarVisible’, false)
} else {
$(‘body’).addClass(‘admin’)
$.cookie(‘adminBarVisible’, true)
};
});[/code]
Jak to lepiej rozwiązać?

Jeśli planujesz dodawać inne skróty klawiaturowe proponowałbym użyć funkcji data zamiast zawsze na loadzie robić key.
Na przykład w htmlu może być tak:

<body class="admin hotkey" data-hotkey="tab + q" data-callback="toggleAdmin"> ....
Natomiast w JS mniej więcej coś takiego:

[code]namespace.toggleAdmin = function ( element ) {
}

// …

$(".hotkey").each( function( index ) {
var $this = $(this),
hotkey = $this.data(‘hotkey’),
callback = function () { return namespace$this.data(‘callback’)};

key( hotkey, callback );
});[/code]
Dzięki temu będziesz mógłe e razie czego podpiąć hotkey do innego elementu bez dłubania w JS.
Samo togglowanie można spróbować tak:

namespace.toggleAdmin = function ( element ) { var newState = !($.cookie('adminBarVisible') || element.hasClass('admin')); $.cookie('adminBarVisible', newState); element.toggleClass('admin', newState); }
Pisałem z głowy mam nadzieję że nie rzuca errorami i przekazałem ideę:)