diff options
author | Teddy Wing | 2015-05-23 16:21:38 -0400 |
---|---|---|
committer | Teddy Wing | 2015-05-23 16:21:38 -0400 |
commit | 3a09e4dd09a6af3b228fcda68aa0709626b5ee51 (patch) | |
tree | a434d76ccae2a55cfe4f4c0215a99017de4bba33 /lib/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js | |
parent | 6183a0bb3caf4805ed4242a4ac104b9890db3601 (diff) | |
download | Peniquitous-3a09e4dd09a6af3b228fcda68aa0709626b5ee51.tar.bz2 |
Set up Bower. Install Mousetrap.
* Create limited bower.json file
* Create .bowerrc that tells Bower to use the `lib` directory
* Install Mousetrap for key events
Diffstat (limited to 'lib/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js')
-rw-r--r-- | lib/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js b/lib/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js new file mode 100644 index 0000000..523fc86 --- /dev/null +++ b/lib/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js @@ -0,0 +1,39 @@ +/** + * Overwrites default Mousetrap.bind method to optionally accept + * an object to bind multiple key events in a single call + * + * You can pass it in like: + * + * Mousetrap.bind({ + * 'a': function() { console.log('a'); }, + * 'b': function() { console.log('b'); } + * }); + * + * And can optionally pass in 'keypress', 'keydown', or 'keyup' + * as a second argument + * + */ +/* global Mousetrap:true */ +(function(Mousetrap) { + var _oldBind = Mousetrap.prototype.bind; + var args; + + Mousetrap.prototype.bind = function() { + var self = this; + args = arguments; + + // normal call + if (typeof args[0] == 'string' || args[0] instanceof Array) { + return _oldBind.call(self, args[0], args[1], args[2]); + } + + // object passed in + for (var key in args[0]) { + if (args[0].hasOwnProperty(key)) { + _oldBind.call(self, key, args[0][key], args[1]); + } + } + }; + + Mousetrap.init(); +}) (Mousetrap); |