李晓亮的博客

导航

【转】JS经典-UI管理器

UI管理器的思路来源, 这个概念其实很多人都有, 而且也有很多的作品, 这里就不一一列举了, 因为在做界面的时候,比如你会用到某个js组件,通常你都会用数组(" []" )来保存组件的句柄或者对象引用, 还有个原因是我在写C++的时候经常会用到map这个东东,其实js也有的(比如 document['body'].getElementById('...')" )., 自然而然的想到了object, 我们可以用形如"obj[name]"的语法来表示对象或者属性,所有想把js组件规范化, 即经典UI管理的出现。

先给出代码:

javacript代码
/*-------------------------------------------------------
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'],
    //已经加载的组件列表
    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];
    }

 

我们在每次创建已个js组件的时候注册一下(UI.registerComponent ('name1', this)),给该js组件分配个名字("name1"), 则访问该组件可以用
UI.components["name1"].... // 来访问该Js组件

我这里提出的是一种方法,具体还可以用其他的方式来实现管理

posted on 2012-05-26 02:16  LeeXiaoLiang  阅读(176)  评论(0)    收藏  举报