aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js')
-rw-r--r--lib/mousetrap/plugins/bind-dictionary/mousetrap-bind-dictionary.js39
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);