Как сохранить внутреннее свойство в виджете jquery-ui?

Я программирую новый виджет jquery-ui с нуля. Я нашел официальный документ "как работает фабрика виджетов". ( http://jqueryui.com/demos/widget/)

Сам виджет работает нормально. Теперь я хочу сохранить некоторые значения внутри - есть ли предпочтительный способ сделать это?
Я думаю, что все свойства, которые объявлены в опциях, являются публичными.

Спасибо за вашу помощь!

1 ответ

Решение

Просто используйте простые старые свойства на this, Например, базовый виджет будет выглядеть примерно так:

$.widget('some_name', {
    options: { /* ... */ },
    _create: function() {
        // ...
        this.internal_value = 11;
        // ...
    },
    frobnicate_by: function(this_much) {
        this.internal_value += this_much;
    }
    // ...
});

И вы можете настроить свои внутренние значения как свойства this по желанию. Например, вышеуказанные наборы this.internal_value до начального значения 11 и $(s).some_name('frobnicate_by', 23) изменил бы internal_value,

Вы можете увидеть пример внутреннего свойства в примере виджета, на который вы ссылаетесь, ища this.changer,

options используются для вещей, которые можно настроить, когда кто-то создает экземпляр вашего виджета. Внутренние настройки не требуют какой-либо специальной обработки, это просто старые свойства объекта; одна из приятных особенностей фабрики виджетов заключается в том, что она позволяет легко делать обычные вещи в ваших виджетах.

Другие вопросы по тегам