50、JavaScript里面,自定义事件的简单实现(事件队列的简单实现)
2016-08-02 21:44
666 查看
1、JavaScript里面,自定义事件的简单实现(事件队列的简单实现)
2、实现的代码
var Event = {
on: function(eventName, callback) {
//下面的两个undefined的判断很重要
//保证了,动态的初始化了,对象的属性
if(typeof Event.handlers == "undefined") {
Event.handlers = {};
}
if(typeof Event.handlers[eventName] == "undefined") {
Event.handlers[eventName] = [];
}
Event.handlers[eventName].push(callback);
},
emit: function(eventName) {
//只有含有这个,时间的时候,才会调用回调函数
if(Event.handlers[eventName] instanceof Array) {
var handler = Event.handlers[eventName];
for(var i = 0, len = handler.length; i < len; i++) {
handler[i](arguments[1]);
}
}
},
removeHandler: function(type, handler) {
if(Event.handlers[type] instanceof Array) {
var handlers = Event.handlers[type];
for(var i = 0, len = handlers.length; i < len; i++) {
if(handlers[i] === handler) {
break;
}
}
handlers.splice(i, 1);
}
}
}
3、测试代码
function a(result) {
console.log(result);
}
function b() {
console.log('test');
}
Event.on('test', a);
Event.on('test', b);
//Event.removeHandler('test', b);
Event.emit('test', 'hello world');
2、实现的代码
var Event = {
on: function(eventName, callback) {
//下面的两个undefined的判断很重要
//保证了,动态的初始化了,对象的属性
if(typeof Event.handlers == "undefined") {
Event.handlers = {};
}
if(typeof Event.handlers[eventName] == "undefined") {
Event.handlers[eventName] = [];
}
Event.handlers[eventName].push(callback);
},
emit: function(eventName) {
//只有含有这个,时间的时候,才会调用回调函数
if(Event.handlers[eventName] instanceof Array) {
var handler = Event.handlers[eventName];
for(var i = 0, len = handler.length; i < len; i++) {
handler[i](arguments[1]);
}
}
},
removeHandler: function(type, handler) {
if(Event.handlers[type] instanceof Array) {
var handlers = Event.handlers[type];
for(var i = 0, len = handlers.length; i < len; i++) {
if(handlers[i] === handler) {
break;
}
}
handlers.splice(i, 1);
}
}
}
3、测试代码
function a(result) {
console.log(result);
}
function b() {
console.log('test');
}
Event.on('test', a);
Event.on('test', b);
//Event.removeHandler('test', b);
Event.emit('test', 'hello world');
相关文章推荐
- JavaScript使用自定义事件实现简单的模块化开发
- javascript实现简单的on事件绑定
- JavaScript使用自定义事件实现简单的模块化开发
- Javascript动态绑定事件的简单实现代码
- javascript简单拖拽实现代码(鼠标事件 mousedown mousemove mouseup)
- 贪吃蛇 android版 里面自己实现了简单的事件系统
- javascript简单拖拽实现代码(鼠标事件 mousedown mousemove mouseup)
- Javascript动态绑定事件的简单实现代码
- 一个简单的用javascript实现的页面内容过滤显示小程序源码
- J2ME MIDP2.0实现简单触摸屏事件
- 利用优先级队列实现事件驱动模拟
- 利用JavaScript实现简单的拖动层(只使用于IE)
- 读GI源码、学JS编程——JavaScript中的事件实现(完整版)。
- MagicAjax执行javascript,实现回车事件提交表单
- JavaScript 模式对话框实现及参数传递的简单例子
- javascript实现Observer模式来管理多个事件回调
- xml+javascript实现简单图片轮换
- 采用事件相应实现的简单画图程序
- DataGrid中绑定javascript事件,实现删除提示和变换背景色
- JavaScript 实现的简单汉诺塔程序