zoukankan      html  css  js  c++  java
  • 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: {
                         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({500}),当初始化没有设置参数就可以用
    $("#test").test("option","width",500) 改变其参数值。
    以_开头的是私有方法,外部不能调用如本例中运行$("#test").test("_getWidth") 将会出错。

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

  • 相关阅读:
    小知识点
    异常关机后idea的注入不能使用
    day42_mysql 数据库操作 数据库的约束
    day41_mysql安装与卸载 mysql配置 SQL语句 DDL:操作数据库,表 DML:增删改表中的记录 DQL:查询表中的记录 DCL:管理用户与授权
    day39_ECMAScript BOM DOM
    day38_JS
    day35_HTML inpot标签 form表单
    day33_Stream(JDK1.8后的接口,本身不是函数式接口)
    day32_ 优化文件上传及接收 函数式接口 自定义函数接口 函数式编程 常用函数式接口 Stream流
    day31_网络通信三要素 TCP Socket关键字 ServerSocket
  • 原文地址:https://www.cnblogs.com/stell/p/2831592.html
Copyright © 2011-2022 走看看