jquery ui 源码分析

jquery ui 是jquery 官方维护的一个开源库
jquery ui都是继承自jquery.ui.widget.js这个文件的。这个文件提供了一个工厂方法来创建widget对象。其方法是$.widget(String name, Options prototype).下面简单介绍下这个类提供的方法和属性。在创建widget的时候将重写这些。

_create() 这个方法就是创建widget的方法,在页面调用widget的时候,就会执行此方法,来构建widget。Widget的绝大大多数行为和结构都是在这里创建的。这个方法只会创建一次。

  _init() 这个方法大多数时候不会被重写,这个方法在构建widget的时候在_create后执行。如写有此方法,每次运行都会执行此方法。

   destroy():将widget实例从dom对象上移除,在开发widget的时候一般此方法是必须的。就是移除你自己在dom element上添加的样式和行为以及dom结构

   options:在这里面保存的是widget的配置信息,在创建widget的时候需要设置一些配置参数。

   element:就是widget作用的dom对象。

   enable()和disable()这两个方法就是禁用和启用widget的。其实是修改options.disabled。

   下面以创建一个简单的对象为例:

 

 

 (function ($, window, undefined) {
            $.widget("ui.test", {
                options: {
                    width: 400
                },
                _create: function () {
                    alert("第一次运行创建对象")
                },
                _init: function () {
                    alert("每次运行实例化对象")
                },
                getWidth: function () {
                    return this.options.width;
                }, 
                _getWidth: function () {
                    return this.options.width;//私有方法
                },
                destroy: function () {
                    alert("对象从dom 中删除前")
                }
            });
        })(jQuery, window, undefined)

  其中ui.test  中 ui为命名空间, test为对象名  如果页面有元素<div  id="test"/>

  运行$("#test").test() 这时候会执行 

 alert("第一次运行创建对象")
 alert("每次运行实例化对象")

实例化一次就可以运行里面的方法$("#test").test("getWidth") 当方法有参数时可以用
$("#test").test("getWidth",参数1,参数2)
其中 options 中的值不给将取默认值 如本例中的400 可以在第一次运行的时候给定 如$("#test").test({width:500}),当初始化没有设置参数就可以用
$("#test").test("option","width",500) 改变其参数值。
以_开头的是私有方法,外部不能调用如本例中运行$("#test").test("_getWidth") 将会出错。

  如运行$("#test").remove() 将执执行 alert("对象从dom 中删除前")

posted @ 2012-12-24 22:07  地板飞  阅读(1368)  评论(0编辑  收藏  举报