如何在自定义小部件上设置默认值?

时间:2014-09-16 19:28:28

标签: javascript jquery-ui

我已经创建了一个自定义的jQuery UI小部件。它看起来像这样:

$.widget('wx.datetime', {
    options: {
        dateFormat: 'd-M-yy', 
        timezone: '', 
        ...
    },

    _create: function() {
        ...
    }

    ...
}

现在我如何全局覆盖这些选项默认值?

1 个答案:

答案 0 :(得分:1)

在您的小部件中,您已经指定了一组全局默认值:

$.widget('wx.datetime', {
    options: {
        dateFormat: 'd-M-yy', // These are the global defaults, change them here
        timezone: '', 
        ...
    },
    ...
 }

创建窗口小部件实例时可以覆盖默认选项,如下所示:

$('#myDiv').datetime({
   dateformat: 'YYYY-mm-dd' // overrides defaults defined in widget
});

<击> 但是如果确实需要两组默认选项,即您在窗口小部件和其他一组中定义的默认选项,则可以使用内置的jQuery.extend来合并create方法中的两组选项:

<击>
_create: function( parms ) {
    $.extend(this.options, ( someGlobalOptionsObject || {} ));
}

要覆盖默认选项,请将someGlobalOptions设置为具有要替换的相同属性名称的对象。

更改$.wx.datetime.prototype.options对象中的属性将允许您为窗口小部件的所有新实例指定不同的默认值。