2016-05-24 3 views
0

で私を助けてダッシュボード1 ">タブを閉じる() - - 私はmyDiv1からonCloseをクリックするとDOJOは: - >新しいタブ(「ダッシュボード1を開く</p> <p>1)私は<code>myDiv1</code>をクリックした場合:私はその近くがあれば除外リンク<code>myDiv1</code>一度だけ(ワンクリック)を開きたいタブ

2)>それは動作します" ") - >それは

3作品)もし新しいタブ(" ダッシュボード1 ")が開き、もう一度クリックしますmyDiv1タブを選択して新しいタブを作成しないだけです。

私はどのように3番目のステップを行うことができますか?パリ

<script> 
require(["dojo/dom-attr", "dojo/query", "dijit/layout/TabContainer",  "dijit/layout/ContentPane", "dojo/on", "dojo/dom", "dojo/dom-style", "dojo/mouse", "dojo/dom-construct"], 

function(attr, query, TabContainer, ContentPane, on, dom, domStyle, mouse, domConstruct) 
{ 
    on(myDiv1, "click", function(evt) 
    { 
     var cp1 = new ContentPane(
     { 
      title: myDiv1.innerText, 
      closable: true, 
      onClose: function() 
      { 
       tc.removeChild(cp1); 
      }, 
      content: domConstruct.create("iframe", 
      { 
       "src": "http://www.bing.com/" 
      }) 
     }); 
     tc.addChild(cp1, 0); 
     tc.selectChild(cp1); 
    }); 

    var tc = new TabContainer(
    { 
     style: "height: 100%; width: 100%;" 
    }, "tab-window"); 
    tc.startup(); 

}); 
</script> 

</head> 
<body class="claro"> 
    <div style="float:left; width:10%; height:100%"> 
     <div id="myDiv1" data-dojo-type="dijit/MenuItem" style="padding:5px; color:blue; font-size:125%;">Dashboard 1</div> 
    </div> 

<div id="idonglet" style="float:left; width:90%; height:500px"> 
    <div id="tab-window"> 
     <!--<iframe id="myIframe" style="float:left; width:100%; height:100%"></iframe>--> 
     <div id="output"></div> 
    </div> 
</div> 
</body> 
</html> 

答えて

0

から

キスTabContainerの子供を取得し、それらを反復処理し、それらのいずれかのタイトルがmyDiv1.innerTextに等しいかどうかを確認します。そうであれば、その子を選択します。

私はここにあなたのコードに必要な変更を投稿しています。

require(["dojo/dom-attr", "dojo/query", "dijit/layout/TabContainer",  "dijit/layout/ContentPane", "dojo/on", "dojo/dom", "dojo/dom-style", "dojo/mouse", "dojo/dom-construct", "dijit/registry"], 

function(attr, query, TabContainer, ContentPane, on, dom, domStyle, mouse, domConstruct, registry) 
{ 
    on(myDiv1, "click", function(evt) 
    { 
     var found= false; 
     var children= tc.getChildren(); 
     for(var i=0; i<children.length; i+++){ 
      var child= children[i]; 
      if(child.title== myDiv1.innerText){ 
        tc.selectChild(child); 
        found= true; 
        break; 
      } 
     } 
     if(!found){ 
      var cp1 = new ContentPane({ 
       title: myDiv1.innerText, 
       closable: true, 
       onClose: function() 
       { 
        tc.removeChild(cp1); 
       }, 
       content: domConstruct.create("iframe", 
       { 
        "src": "http://www.bing.com/" 
       }) 
      }); 
      tc.addChild(cp1, 0); 
      tc.selectChild(cp1); 
     } 
    }); 

    var tc = new TabContainer(
    { 
     style: "height: 100%; width: 100%;" 
    }, "tab-window"); 
    tc.startup(); 

}); 
+0

Wahou!完璧な答え!!!どうもありがとうございます! –

+0

うれしい私は助けることができます。 :) それがあなたのために働いた場合は、受け入れられた回答としてマークしてください。 – Himanshu

関連する問題

 関連する問題