要是实在不知道要干什么,那就喝两杯思路就来了!

导航菜单

注册键盘事件封装

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


发表评论