电脑键盘上100多个按键,当我们开发按钮比较频繁的应用时,不可能每个页面每绑定一个事件都得重新写一遍代码,一大堆的if...else...逻辑,当然实现功能是没有任何问题的。但是这样的代码后期可维护性和可扩展性极差,在付出多余工作量的情况下,还很容易出错。现在我们就对上面的功能做一个统一的封装,可以被重复使用,一处修改全局生效。这只是一个基础的核心功能演示,实际场景还需要自行扩展。话多无益,直接上代码!
/* 封装一个绑定键盘事件小工具 可以多处复用 */ (function (global) { function Key () { document.addEventListener('keydown', function (e) { this.press(e); }.bind(this)); }; Key.prototype.extend = function (obj) { for (var key in obj) { this[key] = obj[key]; } } Key.prototype.press = function (event) { var e = event || window.event; var c = e.keyCode; if (typeof this[c] === 'function') { this[c](e); } } global.Key = Key; }(window)); /* =================以上是封装过程, 以下是使用方法================= */ /* 先实例化一下 */ var keys = new Key(); /* 将按键的 code 码和需要的事件注册上去即可 */ keys.extend({ '65': function (e) { console.log('按下了a键'); }, '13': function (e) { console.log('按回车'); }, '8': function (e) { console.log('你打退格键'); } })
发表评论