FleetCart/Modules/Admin/Resources/assets/js/jquery.keypressAction.js

39 lines
1.1 KiB
JavaScript
Raw Normal View History

2023-06-11 12:14:03 +00:00
(function ($, window, document, undefined) {
let pluginName = 'keypressAction', defaults = {};
// The actual plugin constructor
function keypressAction(element, options) {
this.element = element;
this.settings = $.extend({}, defaults, options);
this._defaults = defaults;
this._name = pluginName;
this.init();
}
$.extend(keypressAction.prototype, {
bindKeyToRoute(key, route) {
Mousetrap.bind([key], (e) => {
window.location = route;
return false;
});
},
init() {
$.each(this.settings.actions, (index, object) => {
this.bindKeyToRoute(object.key, object.route);
});
},
});
$.fn[pluginName] = function (options) {
this.each(function () {
if (! $.data(this, `plugin_${pluginName}`)) {
$.data(this, `plugin_${pluginName}`, new keypressAction(this, options));
}
});
// chain jQuery functions
return this;
};
})(jQuery, window, document);