0

タブコンテナビューからタイトルペインビューに切り替えようとしています。「cPane」のクラスを持つすべてのdomオブジェクトをプルしています。最初はdijit.layout.ContentPaneとして割り当てていますが、トグルボタンを押すと、dijit.TitlePaneに再割り当てしようとしています。

dom要素がその属性を保持していないようです。私はすべての「破壊」方法を試しましたが、TitlePaneに割り当てると空白になります。属性を失うことなく、DOMノードを再割り当てするにはどうすればよいですか?ありがとう。

これが私のコードです:http: //jsfiddle.net/afarris/gFXnH/11/

dojo.require("dojo.parser");
dojo.require("dijit.form.Button");
dojo.require("dijit.layout.TabContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.TitlePane");

dojo.addOnLoad(function() {

dojo.parser.parse("widget");

var cc = dojo.byId("contentContainer");

dojo.query(".cPane").forEach(function(n){
   new dijit.layout.ContentPane({
        title: dojo.attr(n, "title")
    }, n);
});

var dtc = new dijit.layout.TabContainer({
   style: "height:100px; width: 100%;"
}, cc);

dtc.startup();    

var tabMode = true;


new dijit.form.ToggleButton({
    showLabel: true,
    checked: false,
    onChange: function(val) {
        if (tabMode == true) {
            dtc.destroyDescendants(true);
            dojo.query(".cPane").forEach(function(n){
            console.log('found contentPane');
                new dijit.TitlePane({
                    title: dojo.attr(n, "title"), open: "true"
                }, n), cc;
            });            
        }

    },
    label: "toggle"
},
"viewToggle");    

});

<div class="tundra">
<div id="widget">
<button id="viewToggle"></button>
<div id="contentContainer">
    <div class="cPane" title="First" style="width: 100%; height: 100px">test</div>
    <div class="cPane" title="Second" style="width: 100%; height: 100px"><p>demo</p></div>
 </div>
</div>
4

1 に答える 1

0

.destroyDescendantsを呼び出すと、タブコンテナが破棄され、コンテンツペインが破棄され、元の.cPanedivが破棄されます。したがって、TitlePanesとして入力することはできません。

最初のContentPaneを作成するときは、.cPaneノード(ContentPanes内ではなく)ContentPanesにするので、タブコンテナを破棄するとノードはなくなります。

したがって、コンテンツペインを破棄する前に、コンテンツペインからコンテンツを取り出す必要があります。コンテンツをコンテンツペインに変換するのではなく、コンテンツをコンテンツペインに配置する方が、おそらく混乱が少なくなります。(TitlePanesを作成する場合も同じです。)次に、「place」を使用して、コンテンツをContentPaneからTitlePaneに移動できます(例:http: //dojotoolkit.org/documentation/tutorials/1.7/dom_functions/ )

あなたが何を達成しようとしているのかよくわからないので、答えるのは少し難しいです。

于 2012-05-05T00:19:13.787 に答える