一个简单的javascript模块间事件通信范例

2018-03-15  本文已影响0人  1af45fa6b25f

现在项目开发中很多采用了模块化方式开发,很多时候多个模块中间需要通过事件方式进行交互,这里给出一个简单的示例代码,希望对大家有所帮助。

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);  

        }  

    }  

};  

传送门

上一篇下一篇

猜你喜欢

热点阅读