2016-04-18 12 views
1

タブレイアウト内でタブレイアウトを使用したい。私はMaterial Design Liteを使用しています.Liteはすでにタブ用のクラスを作成していますので、同じものを使用しようとしています。タブ内のタブを使用していない - Material Design Lite

タブ番号1 - 水平タブは問題なく個別に動作しています。 タブ番号2 - 垂直タブが問題なく個別に動作しています。

今、タブ番号1の中でタブ番号2を使用しようとしました。タブ番号1の動作は変わりませんが、タブ番号2は機能しません。

このPlunkerリンクを見てください:https://plnkr.co/edit/LVPexb9akrRR2AoPGEGO?p=preview

コード - HTML

<!DOCTYPE html> 
<html> 

<head> 
    <link data-require="[email protected]" data-semver="1.1.1" rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" /> 
    <link data-require="[email protected]" data-semver="1.1.1" rel="stylesheet" href="https://code.getmdl.io/1.1.1/material.indigo-pink.min.css" /> 
    <script data-require="[email protected]" data-semver="1.1.1" src="https://code.getmdl.io/1.1.1/material.min.js"></script> 
    <link rel="stylesheet" href="style.css" /> 
    <script src="script.js"></script> 
</head> 

<body> 

    <h4>Combined Tab 2 within Tab 1</h4> 
    <div class="mdl-tabs mdl-js-tabs"> 
     <div class="mdl-tabs__tab-bar"> 
      <a href="#tab1" class="mdl-tabs__tab">Tab One</a> 
      <a href="#tab2" class="mdl-tabs__tab">Tab Two</a> 
      <a href="#tab3" class="mdl-tabs__tab">Tab Three</a> 
     </div> 
     <div class="mdl-tabs__panel is-active" id="tab1"> 
      <div class="mdl-tabs vertical-mdl-tabs mdl-js-tabs mdl-js-ripple-effect"> 
       <div class="mdl-grid mdl-grid--no-spacing"> 
        <div class="mdl-cell mdl-cell--2-col"> 
         <div class="mdl-tabs__tab-bar"> 
          <a href="#tab1-panel" class="mdl-tabs__tab is-active"> 
           <span class="hollow-circle"></span> General 
          </a> 
          <a href="#tab2-panel" class="mdl-tabs__tab"> 
           <span class="hollow-circle"></span> Bank 
          </a> 
          <a href="#tab3-panel" class="mdl-tabs__tab"> 
           <span class="hollow-circle"></span> Password 
          </a> 
         </div> 
        </div> 
        <div class="mdl-cell mdl-cell--10-col"> 
         <div class="mdl-tabs__panel is-active" id="tab1-panel"> 
          Content 1 
         </div> 
         <div class="mdl-tabs__panel" id="tab2-panel"> 
          Content 2 
         </div> 
         <div class="mdl-tabs__panel" id="tab3-panel"> 
          Content 3 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div class="mdl-tabs__panel" id="tab2"> 
      <p>Second tab's content.</p> 
     </div> 
     <div class="mdl-tabs__panel" id="tab3"> 
      <p>Third tab's content.</p> 
     </div> 
    </div> 

    <h4>Tab 1 Individual</h4> 
    <div class="mdl-tabs mdl-js-tabs"> 
     <div class="mdl-tabs__tab-bar"> 
      <a href="#tab1" class="mdl-tabs__tab">Tab One</a> 
      <a href="#tab2" class="mdl-tabs__tab">Tab Two</a> 
      <a href="#tab3" class="mdl-tabs__tab">Tab Three</a> 
     </div> 
     <div class="mdl-tabs__panel is-active" id="tab1"> 
      <p>First tab's content.</p> 
     </div> 
     <div class="mdl-tabs__panel" id="tab2"> 
      <p>Second tab's content.</p> 
     </div> 
     <div class="mdl-tabs__panel" id="tab3"> 
      <p>Third tab's content.</p> 
     </div> 
    </div> 

    <h4>Tab 2 Individual</h4> 

    <div class="mdl-tabs vertical-mdl-tabs mdl-js-tabs mdl-js-ripple-effect"> 
     <div class="mdl-grid mdl-grid--no-spacing"> 
      <div class="mdl-cell mdl-cell--2-col"> 
       <div class="mdl-tabs__tab-bar"> 
        <a href="#tab1-panel" class="mdl-tabs__tab is-active"> 
         <span class="hollow-circle"></span> General 
        </a> 
        <a href="#tab2-panel" class="mdl-tabs__tab"> 
         <span class="hollow-circle"></span> Bank 
        </a> 
        <a href="#tab3-panel" class="mdl-tabs__tab"> 
         <span class="hollow-circle"></span> Password 
        </a> 
       </div> 
      </div> 
      <div class="mdl-cell mdl-cell--10-col"> 
       <div class="mdl-tabs__panel is-active" id="tab1-panel"> 
        Content 1 
       </div> 
       <div class="mdl-tabs__panel" id="tab2-panel"> 
        Content 2 
       </div> 
       <div class="mdl-tabs__panel" id="tab3-panel"> 
        Content 3 
       </div> 
      </div> 
     </div> 
    </div> 

</body> 

</html> 

をCSSの

/*Vertical Tabs*/ 
.vertical-mdl-tabs { 
    margin-top: 30px; 
} 
.vertical-mdl-tabs .mdl-tabs__tab-bar { 
    -webkit-flex-direction: column; 
     -ms-flex-direction: column; 
      flex-direction: column; 
    padding-bottom: 35px; 
    height: inherit; 
    border-bottom: none; 
    border-right: 1px solid #d9d9d9; 
} 

.vertical-mdl-tabs .mdl-tabs__tab { 
    width: 100%; 
    height: 35px; 
    line-height: 35px; 
    box-sizing: border-box; 
    letter-spacing: 2px; 

} 

.vertical-mdl-tabs.mdl-tabs.is-upgraded a.mdl-tabs__tab.is-active { 
    border-right: 2px solid #EF5350; 
} 
.vertical-mdl-tabs.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after { 
    content: inherit; 
    height: 0; 
} 

.vertical-mdl-tabs.mdl-tabs.is-upgraded .mdl-tabs__panel.is-active, .mdl-tabs__panel { 
    padding: 0 30px; 
} 

.vertical-mdl-tabs.mdl-tabs .mdl-tabs__tab { 
    text-align: left; 
} 

答えて

1

私は右推測している場合は、「垂直タブのをとっていますこの記事のコード "Vertical tabs in Material design lite。私はその記事を書いていますが、理解できる限り、あなたの問題は縦のタブに関係していません。水平タブの内側に水平タブを使用する場合も、同じ問題に直面します。

mdl-tabsのjavスクリプトコードが原因で問題が発生している可能性があります。元の開発者は、タブの親コンテナを使用して、そのコンテナの下にある各タブを見つけ、それに対するクリックイベントをバインドしている可能性があります。それが問題を作り出す理由です。今は分娩のために理解できません。

解決策:クリックイベントを親の下の子タブにバインドするのではなく、クリックしたタブに基づいて「最も近い」親タブコンテナを検索し、見つかった親タブに基づいて子タブを変更するコードを変更する必要があります。

圧倒するかもしれませんが、それは私が起こっていると推測できるものです。

関連する問題