【转】JS经典-UI管理器
UI管理器的思路来源, 这个概念其实很多人都有, 而且也有很多的作品, 这里就不一一列举了, 因为在做界面的时候,比如你会用到某个js组件,通常你都会用数组(" []" )来保存组件的句柄或者对象引用, 还有个原因是我在写C++的时候经常会用到map这个东东,其实js也有的(比如 document['body'].getElementById('...')" )., 自然而然的想到了object, 我们可以用形如"obj[name]"的语法来表示对象或者属性,所有想把js组件规范化, 即经典UI管理的出现。
先给出代码:
javacript代码
UI.components["name1"].... // 来访问该Js组件
我这里提出的是一种方法,具体还可以用其他的方式来实现管理
先给出代码:
javacript代码
/*-------------------------------------------------------
UI library
function: UI界面组件库管理器
date: 2008-06-12
author: lovelylife
the component can be used as UI.components[id]
---------------------------------------------------------*/
var UI = {
UI library
function: UI界面组件库管理器
date: 2008-06-12
author: lovelylife
the component can be used as UI.components[id]
---------------------------------------------------------*/
var UI = {
// 组件类型
comType: ['combobox', 'table', 'player'],
//已经加载的组件列表
comType: ['combobox', 'table', 'player'],
//已经加载的组件列表
components: new Object(),
unnamed: 0,
unnamedTag: 'unnamed',
registerComponent: function(idstr, ref) {
if (idstr == "") {
// 组件变量名没有定义
this.unnamedTag = this.unnamedTag + 1;
this.components[this.unnamedTag + this.unnamedTag] = ref;
} else {
if (this.components[idstr] != undefined) {
alert('[' + idstr + '] has been registered');
return - 1;
}
this.components[idstr] = ref;
}
},
unRegisterComponent: function(idstr) {
delete this.components[idstr];
}
unnamed: 0,
unnamedTag: 'unnamed',
registerComponent: function(idstr, ref) {
if (idstr == "") {
// 组件变量名没有定义
this.unnamedTag = this.unnamedTag + 1;
this.components[this.unnamedTag + this.unnamedTag] = ref;
} else {
if (this.components[idstr] != undefined) {
alert('[' + idstr + '] has been registered');
return - 1;
}
this.components[idstr] = ref;
}
},
unRegisterComponent: function(idstr) {
delete this.components[idstr];
}
我们在每次创建已个js组件的时候注册一下(UI.registerComponent ('name1', this)),给该js组件分配个名字("name1"), 则访问该组件可以用
UI.components["name1"].... // 来访问该Js组件
我这里提出的是一种方法,具体还可以用其他的方式来实现管理
posted on 2012-05-26 02:16 LeeXiaoLiang 阅读(176) 评论(0) 收藏 举报

浙公网安备 33010602011771号