一个简单的javascript模块间事件通信范例
现在项目开发中很多采用了模块化方式开发,很多时候多个模块中间需要通过事件方式进行交互,这里给出一个简单的示例代码,希望对大家有所帮助。
window.Core = window.Core || {};
Core.listenData = {};
//事件监听
Core.listen =function (args, handle) {
//args:监听事件的名称,可为数组形式,handle:监听到事件后的处理函数
//同一个页面上可能存在多个同样的部件,他们所监听的可能是同一个事件
if (typeof (args) == 'string') {
args = [args];
}
for (var i = 0; i < args.length; i++) {
if (Core.listenData.hasOwnProperty([args[i]])) {
Core.listenData[args[i]].push(handle);
}else {
Core.listenData[args[i]] = [];
Core.listenData[args[i]].push(handle);
}
}
};
//事件通知
Core.notify =function (handleName, data) {
if (Core.listenData.hasOwnProperty([handleName])) {
var handleList = Core.listenData[handleName];
for (var i = 0; i < handleList.length; i++) {
handleList[i](handleName, data);
}
}
};