diff options
Diffstat (limited to 'lib/mousetrap/plugins/bind-dictionary')
3 files changed, 56 insertions, 0 deletions
diff --git a/lib/mousetrap/plugins/bind-dictionary/README.md b/lib/mousetrap/plugins/bind-dictionary/README.md new file mode 100644 index 0000000..6f956b6 --- /dev/null +++ b/lib/mousetrap/plugins/bind-dictionary/README.md @@ -0,0 +1,16 @@ +# Bind Dictionary + +This extension overwrites the default bind behavior and allows you to bind multiple combinations in a single bind call. + +Usage looks like: + +```javascript +Mousetrap.bind({ + 'a': function() { console.log('a'); }, + 'b': function() { console.log('b'); } +}); +``` + +You can optionally pass in ``keypress``, ``keydown`` or ``keyup`` as a second argument. + +Other bind calls work the same way as they do by default. 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); diff --git a/lib/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.min.js b/lib/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.min.js new file mode 100644 index 0000000..bf9d8d0 --- /dev/null +++ b/lib/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.min.js @@ -0,0 +1 @@ +(function(b){var c=b.prototype.bind,a;b.prototype.bind=function(){a=arguments;if("string"==typeof a[0]||a[0]instanceof Array)return c.call(this,a[0],a[1],a[2]);for(var b in a[0])a[0].hasOwnProperty(b)&&c.call(this,b,a[0][b],a[1])};b.init()})(Mousetrap); |