jquery.shortcut

Public methods

bind
$().shortcut(shortcut, function, releaseFunction);
trigger
$().shortcut('trigger', shortcut);
unbind
$().shortcut('unbind', shortcut);

shortcut syntaxe

shortcut
ctrl+a
namespace
ctrl+a.selection
multiple
ctrl+a,ctrl+e
multiple amp; namespace (namespace is applied to all shortcuts)
ctrl+a,ctrl+e.selection

Exemple

$('textarea').shortcut('ctrl+enter', function() {
	$(this).parents('form').submit();
});

Known issues

Demonstrations

Single key

var	dest	=	parseInt($('#demo div').css('left'));
$().shortcut('left arrow', function() {
	dest	=	dest - 10 < 0 ? 0 : dest - 10;
	$('#demo div').stop(true, false).animate({
		left: dest + '%'
	});
	$('#demo div div').text('←');
}, function() {
	$('#demo div div').text('');
});

$().shortcut('right arrow', function() {
	dest	=	dest + 10 > 100 ? 100 : dest + 10;
	$('#demo div').stop(true, false).animate({
		left: dest + '%'
	});
	$('#demo div div').text('→');
}, function() {
	$('#demo div div').text('');
});

Keys combination and namespace

a+z state:
released
a+z,a+e.test2 state:
released
$().shortcut('bind','a+z', function() {
    $('#demo2').css({color: 'red'}).text('pressed');
}, function() {
    $('#demo2').css({color: 'blue'}).text('released');
});
$().shortcut('bind','a+z,a+e.test2', function() {
    $('#demo3').css({color: 'red'}).text('pressed');
}, function() {
    $('#demo3').css({color: 'blue'}).text('released');
});

Get pressed shortcut

$(document).bind('keydown keyup focus blur',function(e){
	$('#demo4').val($().shortcut.toString());
});