电脑键盘上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('你打退格键');
}
})
发表评论