jQuery.Shortcuts
jQuery.Shortcuts lets you easily switch between sets (groups) of arbitrary and easy-to-define shortcuts. You can even manage parentage of shortcut groups via namespaces.
Dependencies
This jQuery plugin requires John Resig's hotkeys plugin to be loaded.
Examples
Configuration
$.Shortcuts({
global: "global",
delimitter: ".",
defaultEvent: "keydown",
target: document,
priorities: false
});
Add and remove (global) shortcuts
var sc = $.Shortcuts();
var handler = function(event) {
};
sc.add("ctrl+h", handler);
sc.remove("ctrl+h", handler);
Handle shortcut parentage using namespaces
var myTopSc = $.Shortcuts("top");
var mySubSc = $.Shortcuts("top.sub");
console.log(mySubSc.parent() == myTopSc);
console.log(myTopSc.child("sub") == mySubSc);
Using priorities
$.Shortcuts({ priorities: true });
var sc1 = $.Shortcuts("one");
var sc2 = $.Shortcuts("two");
var handler = function(event) {
};
sc1.add("ctrl+h", handler);
sc2.add("ctrl+h", handler);
sc2.priority(10);
API
-
$.Shortcuts([namespace|options])
If options
are passed, the global options are extended and the $.Shortcuts
object is returned. If a namespace
is passed, a new shortcuts instance/group with that namespace is created and returned. When no argument is given, the global shortcut group is returned. Parentage is built automatically. A namespace consists of a number of names seperated by a delimitter. Example: namespace "foo.bar"
=> shortcuts "global"
-> shortcuts "foo"
-> shortcuts "bar"
. Note that the global namespace ("global"
in this example) is always prepended.
-
namespace()
Returns the namespace
.
-
name()
Returns the name
.
-
parent()
Returns the parent shortcuts, or null
when invoked on the global shortcut group.
-
children()
Return all child shortcut groups mapped to their names.
-
child(name)
Return a child shortcut group given by name
.
-
enabled()
Returns the state.
-
enable()
Enable the shorcuts. Note that in case the parent is disabled, this shorcuts do not fire even if they are enabled!
-
disable()
Disable the shortcuts. Please see the note in enable()
.
-
priority([priority])
When priority
is given, the priority is set to that value. Otherwise, the current priority is returned. Note that priorities are only applied, when the priorities
option is set to true
.
-
add(key, [handler1], [handler2], [...])
Add handlers for a shortcut given by key
. See John Resig's hotkeys plugin for more information on the format. As of version 1.1.0, you can prepend the desired event type to your key using the colon character, e.g. keydown:ctrl+a
. keydown
is the default. Other valid events are keyup
and keypress
.
-
remove(key, [handler1], [handler2], [...])
Remove handlers for a shortcut given by key
. If no handlers are given, remove all handlers for that key
.
-
empty()
Remove all handlers for all keys.
-
options()
Returns the current options.
Development
Authors
Marcel R. (riga)