1

defaultsウィジェットを作成していて、いくつかの値を持つオブジェクトを提供したいと考えています。ユーザーにそれらの変更を許可してから、通常どおりウィジェットを作成してもらいたいです (したがって、新しいデフォルトが使用されます)。しかし、ユーザーはどのようにしてデフォルトにアクセスできるのでしょうか?

例:

// separate file, create widget
$.widget("namespace.myWidget", {
    defaults: {
        hello: "world"
    }
}

// index.html
// then user should be able to do something similar
$.namespace.myWidget.defaults = { goodbye: "World" };
// or
$.namespace.myWidget.defaults.hello = "Dog";

// and then create widget normally
$(".selector").myWidget();
4

1 に答える 1

1

defaults定義したウィジェットにオブジェクトを直接アタッチできます。

(function ($) {
    $.widget("namespace.myWidget", {
        _init: function () {
            var options = $.extend({}, $.namespace.myWidget.defaults, this.options);
            /* Do something with options.hello */
        }
    });

    /* Create the `defaults` object */
    $.extend($.namespace.myWidget, {
        defaults: {
            hello: 'world'
        }
    });
}(jQuery));

その後、ウィジェットのユーザーはデフォルトを変更できます。

$.namespace.myWidget.defaults.hello = 'hello';

例: http://jsfiddle.net/J5rVP/49/

于 2013-02-06T15:55:44.453 に答える