多想想,总能感悟出什么...

机会就是这么产生的!

自己写的一个类似jQuery框架,还写了7个Js插件,共享给大家.

我给我的框架取了个名字jRoot.
框架调用的方式采用new jRoot('elementId')或者new $('elementId').为了方便调用可以省略new。
$ = jRoot = function(selector){   
    if(window == this) {return new jRoot(selector);} //当调用方式为jRoot('elementId')时,this = window,就会创建一个jRoot对象.
    this.initialize(selector);
};

jRoot有jRoot.prototype(jRoot主要的方法),jRoot.doc(文档加载类,主要用于判断页面是否加载完毕), jRoot.event(事件添加删除方法), jRoot.browser(浏览器判断方法), jRoot.iUtility(取元素高宽等常见方法), jRoot.tween(主要实现缓动效果的算法)六个部分。以后还会陆续添加jRoot.ajax等部分。
jRoot.js代码如下:
Code


下面写了个myPlugin插件,
jRoot.plugin = {
     myPlugin:function(options){  //options可以传入一些参数
        this.init = function(){
        };
        this.method = function(){
        };
        this.init();
        return this;
     };
}
在这个插件文件myPlugin.js最后部分写上jRoot.fn.extend(jRoot.plugin);或者
jRoot.prototype.extend(jRoot.plugin);
其中extend方法:
jRoot.extend = jRoot.fn.extend = function(destination, source){
    if(!source){
        source = destination;
        destination = this;           
    };
   
    for (var property in source) {
        destination[property] = source[property];
    }
    return destination;
};
这样这个插件方法就扩展到jRoot.prototype方法下面了。

调用的时候就可以使用$('elementId').myPlugin({});    

大概的框架就是这样的。下面是写的几个小插件:
jRoot.iDrag.js 拖拽效果控件
jRoot.iMaskLay.js 遮盖效果控件
jRoot.iDialogBox.js 对话框控件
jRoot.iRichEditor.js 富文本编辑器
jRoot.iSuggest.js 智能提示框
jRoot.iTabPanel.js 多页签控件
jRoot.iCoupletAd.js 对联控件
jRoot.iImageMenu.js 多图片滑动效果控件
jRoot.iMarquee.js 文字滚动效果控件

下载地址







posted on 2009-03-25 23:24  XiaoShan  阅读(3651)  评论(14编辑  收藏  举报

导航