Jquery ui jQueryUINamespaceWidget

Jquery ui jQueryUINamespaceWidget,jquery-ui,jquery-widgets,Jquery Ui,Jquery Widgets,我正在查看ui.dialog源代码,这可能是有史以来最好的学习体验 我看到他们经常引用uiDialog,显然uiDialog是指小部件本身。所以我在我的小部件中尝试了这个,就像在namespaceWidgetName中一样,但它没有定义。我是否正确理解uiDialog,以及如何在小部件中冷藏到我的小部件 (function( $, undefined ) { $.widget("dbd.myWidgetName", { options: { //

我正在查看
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

在ui.dialog的
\u create
功能中,有一行内容如下:

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

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

那么在
\u create
中使用
var myVariable=
定义的变量在整个小部件中都可用吗?对于其他地方定义的变量,这是真的吗?似乎不是。。我做了
var dbdMyWidgetName=$('')
\u create
中,但dbdMyWidgetName在任何其他方法中都不可用。为了澄清一点
uiDialog=(self.uiDialog=$(“”)).appendTo(document.body)…)是神奇的地方…注意:
uiDialog=(self.uiDialog=$('')
self
变量是我在jQuery小部件中注意到的一种常见技术。按照惯例,我的大多数小部件方法都以
var self=this;
开始,因此
self
是当前的小部件(
this
可以引用其他对象,例如当您编写处理程序闭包时,因此使用
self
可以避免混淆)。正如您所指出的,您可以使用
self.myprop
向小部件添加属性,这是存储信息或缓存jQuery元素引用的便捷方法。
$.widget("dbd.myWidgetName", {
    options: {
        //autoOpen: true,
    },
    _create: function() {
    },
    widget: function() {
         return this.element;
    }
}