第一次提交

This commit is contained in:
dengtongyu committed 2018-12-03 17:31:53 +08:00
commit 8121362a03
4412 files changed
+1091845

No files matched your search

@@ -0,0 +1,83 @@
define(function(require, exports, module) {
var logger = require("./logger");
var indexId = 0;
var getNextId = function(){
return indexId ++;
}
var eventClass = function(){
var eventArray = [];
this.addEvent = function(name,fn){
// logger.debug(['event util addEvent',name,fn]);
var evt = {
name:name,
fn:fn
};
eventArray.push(evt);
}
this.removeEvent = function(name,fn){
// logger.debug(['event util removeEvent',name,fn]);
var newArr = [];
for(var i in eventArray){
var e = eventArray[i];
if(e.name == name && e.fn == fn){
// logger.debug("event util removeEvent found:"+name);
}else{
newArr.push(e);
}
}
eventArray = newArr;
}
this.trigerEvent = function(name,data){
// logger.debug(['event util trigerEvent',name,data]);
for(var i in eventArray){
var e = eventArray[i];
if(e && e.name == name){
// logger.debug(["event util trigerEvent found:",name,data]);
e.fn.apply(window,[data]);
}
}
}
this.getEvents = function(){
return eventArray;
}
};
var eventInstances = {};
/**
* 创建一个时间处理器实例,传一个名字,如果name为空则实例一个,如果不为空则返回已有的实例或者新建一个
* @prama 处理器名字,
* @return 事件处理实例
*/
var careteEventInstance = function(name){
if(!name){
return new eventClass();
}
if(name in eventInstances){
return eventInstances[name];
}
var instance = new eventClass();
eventInstances[name] = instance;
return instance;
}
module.exports = {
getInstance:careteEventInstance
};
window.eventUtil = module.exports;
});