2011-10-01 6 views
1

다음과 같이 부동 패널 객체를 복제하려고합니다.도우 부동 창을 복제하십시오.

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); 

하지만 크롬 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); 

이 문제를 해결하는 방법을 알려주십시오. 미리 감사드립니다.

답변

0

위젯이 복제 동작을 지원하는지 확실하지 않습니다. 1. 그들은 모두 고유 한 ID가 있어야합니다 (하나를 직접 전달하지 않으면 하나가 생성됩니다). 그러면 문제를 일으키는 것을 볼 수 있습니다. 또한 위젯에 순환 참조가 없으며 onClick과 같은 이벤트가 엉망이 될 가능성이 높다는 보장이 없습니다.

함수에서 위젯 생성을 캡슐화하는 것과 같은 간단한 솔루션을 사용하지 못하게하는 특별한 이유가 있습니까?

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

var first = make_pane(); 
var second = make_pane(); 
관련 문제