我正在尝试克隆 float Pane 对象,如下所示。
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 。它们都必须有一个唯一的 ID(如果您自己没有通过 ID,则会生成一个 ID),我可以看到这会造成麻烦。也不能保证小部件不存在循环引用,并且 onClick 等事件可能会变得困惑。
是否有任何特殊原因需要克隆,从而阻止您仅使用简单的解决方案(例如将小部件创建封装在函数中)?
function make_pane(){
new dijit.layout.ContentPane({
//...
});
}
var first = make_pane();
var second = make_pane();
关于javascript - 克隆 dojo float Pane ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7618823/