刁连通 2012-02-23
这两天看了一下jquery easyui ,许多地方甚感不明,经过一段仔细的查看源码和推敲得知如下:
jquery easyui首先在会在 jquery 对象下创建一个节点ui(所谓的命名空间),里面包含了自己定义的一些插件方法和自己的工具类,当然也像jquery 对象下创建一些对象,那么它是如何用查找到的jquery的对象调用到了ui节点下的方法呢,当时觉得很是不可思议,究其根本还是对js、jquery不够了解,js中对象的属性的都是以数组形式存得,jquery对象也一样,在jquery中有一个插件机制,插件方法会注册到$.fn 下,easyui 就是利用了这一点,它有一个工具包再注册插件时候专门搞这个事,讲方法先加入ui节点下,然后再在$.fn 中进行桥接,当调用插件方法是就桥接到ui下的方法中。代码如下(简单版)
/**
* @auth: Lyon.Yao
* @fun:
* @date: 2012-2-23
*/
(function( $, undefined ) {
$.test = $.test || {};
$.extend( $.test, {
version: "1.8.17",
});
})( jQuery );
(function( $, undefined ) {
$.test["ddd"]=function(){
alert('ok');
};
$.fn["ddd"]=$.test["ddd"];
})( jQuery );
调用:$("#id").ddd();