克隆dojo浮动窗格

时间:2011-10-01 07:18:30

标签: javascript dojo

我正在尝试克隆浮动窗格对象,如下所示。

var pFloatingPane = new dojox.layout.FloatingPane({
                    title: "A floating pane",
                    resizable: true,
                    dockable: true,
                    style: "position:absolute;top:0;left:0;width:136px !important;height:100px;visibility:visible;",
                    id: "pFloatingPane"
                }).placeAt(dojo.byId("gridContainer"));
var secondPane = dojo.clone(pFloatingPane);

但是当我使用chrome javscript调试工具进行调试时,它会出现以下错误。

Uncaught TypeError: Cannot read property 'id' of undefined

但它可以很好地跟随一个事件,尽管我没有在初始化点给出一个id。

 var topContentPane1 = new dijit.layout.ContentPane(
                  {
                        region: "top",
                        splitter: true,
                        minSize : 10,
                        maxSize : 84
                    },
                    document.createElement("div")
                );
var secondOne = dojo.clone(topContentPane1);

可以请一些人告诉我如何解决这个问题。提前谢谢

1 个答案:

答案 0 :(得分:0)

我不确定克隆小部件是否支持行为1。他们都必须有一个唯一的ID(如果你自己没有通过一个将生成一个),我可以看到造成麻烦。也没有保证小部件没有循环引用,并且onClick等事件可能会搞砸。

您是否有任何特殊原因希望克隆阻止您使用简单的解决方案,例如在功能中封装小部件创建?

function make_pane(){
    new dijit.layout.ContentPane({
        //...
    });
}

var first = make_pane();
var second = make_pane();