A key event controller w/ hot-keys
JavaScript Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
dist
examples
src
test
.gitignore
.travis.yml
Gruntfile.js
README.md
package.json

README.md

onKey.js Build Status

A key event controller w/ hot-keys.

Installation

npm install onKey

In addition jQuery-like selector library is required:

  • jQuery 1.4.3+
  • Zepto

Usage

// Bind a keydown & keyup event to the window
key.down(function(e) {
    alert("key down!");
});

key.up(function(e) {
    alert("key up!")
});

// Bind keyup to a specific selector (will also take a DOM or jQuery object)
key('#input').down(function() {
    alert('input keydown');
});

// Bind hot-keys
key.down({
    'ctrl+alt+tab': function() {
        console.log('ctr+alt+tab pressed!');
    },
    'cmd+a': function() {
        console.log('cmd & ctrl are normalized so that hot-keys work consistently across operating systems');
    }
});

// An Event object is returned whenever key(), key.down() or key.up() is called.
// This object can be turned on and off and more key events can be bound to it.
// This is useful for apps where key events are only relevant in certain views.
var keyEvent = key('#input').down(function() {
    alert('boom!');
});

keyEvent.off();
// keyEvent won't fire

keyEvent.on();
// keyEvent will fire

keyEvent.up({
    'ctrl+a': function() {
        alert('Another binding to the same input!');
    }
});

// Chaining
key
    .down(callback)
    .up(callback)
    .on()
    .off()
    .destroy(); //Completely unbinds the key events in an event object

Note: Since version 0.1.0 you can't use - as hotkey separator since it can be used as a valid key combination, such as cmd -. It's recommended to use spaces or +.

Development

To Build: grunt build

To Develop: grunt watch

To Test: npm test