0

嗨如何命名和销毁对象的实例?请参阅在 jsfiddle 中的工作

declare("obj_Button", [_WidgetBase], {
        buildRendering: function () {
            // create the DOM for this widget
            this.domNode = domConstruct.create("button", {
                innerHTML: "New Button Instance"
            });
        }
    });

    on(dom.byId('btn1'), "click", function(evt)
    {
        (new obj_Button()).placeAt(dom.byId('id'));
         //name the instance
    });

    parser.parse(); // check out more!

    on(dom.byId('btn2'), "click", function(evt)
    {
    // destroy the instance by name, not object
    });

请指教。谢谢

4

1 回答 1

2

如果您知道小部件的 ID,则可以使用“dijit/registry”获取小部件,然后将其销毁:

require(["dijit/registry"], function(registry) {
   registry.byId("myWidgetId").destroyRecursive();
});

如果只知道dom节点的ID,可以registry.findWidgets()(如果widget是dom节点的子节点)或者registry.getEnclosureWidget()(如果dom节点是widget的子节点)。

请参阅http://dojotoolkit.org/reference-guide/1.8/dijit/registry.html#finding-all-widgets-underneath-a-dom-node

于 2013-02-04T13:47:29.927 回答