jQueryUI 的weiget写法

JqueryUI的Weiget写法

  • jQueryUI的Weiget写法
(function ($) {
    // utils fuction
    function foo() {}

    $.widget('命名空间.插件名', $.继承插件的命名空间.插件名,{
        /* snip */ 
        //public方法首字符不是_
        //private方法首字符是_
    });
})(jQuery); 
  • jQueryUI的Weiget的使用方法
var instance = $('<div>');
instance.mywidget('publicFunction'); // work
instance.mywidget('_privateFunction'); // silently fail
instance.data('mywidget')._privateFunction(); // work
$.mynamespace.mywidget.prototype._privateFunction(); // work
  • jQueryUI的Weiget的options
//定义options
options: {
    field1: 'default',
    function1: function () {
        console.log('default option function1');
    }
//调用options中的option
$('#id').jformCommands('option','isInput',true);

jQueryUi的Weiget 的默认构建方法

_createWidget: function( options, element ) {
        element = $( element || this.defaultElement || this )[ 0 ];
        this.element = $( element );
        this.uuid = widgetUuid++;
        this.eventNamespace = "." + this.widgetName + this.uuid;
        //.....这里忽略
        this.options = $.widget.extend( {},
            this.options,
            this._getCreateOptions(),
            options );

        this._create();

        if ( this.options.disabled ) {
            this._setOptionDisabled( this.options.disabled );
        }

        this._trigger( "create", null, this._getCreateEventData() );
        this._init();
    }

所以编写 jquery ui widget时默认需要实现_create,_init,_destory 方法

jQueryUi 是怎么把weiget扩展到$.fn上的

//Widget中的定义写法
$.widget=function(name,base,prototype){
    var namespace = name.split( "." )[ 0 ];
    name = name.split( "." )[ 1 ];
    var fullName = namespace + "-" + name;
    //忽略
    $.widget.bridge( name, constructor );
    return constructor;
}

//具体的$.widget.bridge实现
$.widget.bridge = function( name, object ) {
    var fullName = object.prototype.widgetFullName || name;
    $.fn[ name ] = function( options ) {       
        //忽略 .....
        return returnValue;
    };
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值