0

我正在查看ui.dialog源代码,这可能是有史以来最好的学习体验。

我看到他们引用uiDialog了很多,而且很明显 uiDialog 冷藏到小部件本身。所以我在我的小部件中尝试了这个,namespaceWidgetName但它是未定义的。我是否理解uiDialog正确,以及如何在小部件中冷藏到我的小部件?

(function( $, undefined ) {

    $.widget("dbd.myWidgetName", {
        options: {
            //autoOpen: true,
        },
        _create: function() {
        },
        widget: function() {
             return this.dbdMyWidgetName;
        }
// rest of widget code
4

1 回答 1

1

_createui.dialog 的函数中有一行内容如下:

uiDialog = (self.uiDialog = $('<div></div>'))

这就是uiDialog属性的初始化方式。

根据您的小部件的工作方式,您可能不需要提供widget属性/功能。许多 jQuery 小部件没有。小dialog部件创建一些 DOM 内容,包装您在 中指定的元素$.dialog(),其widget属性/功能使您能够访问该 DOM 元素。

如果您想提供一个widget与 一致的属性dialog,您可以像这样简单地使用小部件的底层element

$.widget("dbd.myWidgetName", {
    options: {
        //autoOpen: true,
    },
    _create: function() {
    },
    widget: function() {
         return this.element;
    }
}

所有 jQuery 小部件都有一个名为的属性element,它引用底层 DOM 元素,包装在一个 jQuery 实例中。在调试器中查看它是如何工作的。

于 2011-02-12T16:44:49.237 回答