如何在jquery-ui小部件中存储内部属性?

时间:2012-01-04 17:38:33

标签: javascript jquery jquery-ui widget jquery-ui-widget-factory

我正在从头开始编写一个新的jquery-ui小部件。 我找到了官方的'小部件工厂如何工作'文件。 (http://jqueryui.com/demos/widget/

小部件本身工作正常。 现在我想在内部存储一些值 - 是否有一种首选方法可以做到这一点? 我认为在选项中声明的所有属性都是公共的。

感谢您的帮助!

1 个答案:

答案 0 :(得分:8)

只需在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用于在有人创建窗口小部件实例时可以配置的内容。内部设置不需要任何特殊处理,它们只是普通的旧对象属性;小部件工厂的一个好处是它可以让您轻松地在小部件中执行正常的OO操作。