diff options
Diffstat (limited to 'node_modules/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js')
-rw-r--r-- | node_modules/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/node_modules/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js b/node_modules/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js new file mode 100644 index 0000000000..523fc86e7a --- /dev/null +++ b/node_modules/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); |