2016-04-18 2 views
1

Я хочу использовать компоновку вкладок в макете вкладок. Я использую Material Design lite, который уже сделал классы для вкладок, поэтому я стараюсь использовать их.Использование вкладок внутри вкладки не работает - Material Design Lite

Вкладка № 1 - Горизонтальная вкладка работает индивидуально без каких-либо проблем. Вкладка № 2 - вертикальная вкладка работает индивидуально без каких-либо проблем.

Теперь я попытался использовать вкладку номер 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. Я написал эту статью, и, насколько я понимаю, ваша проблема не связана с вертикальными вкладками. Вы столкнетесь с такой же проблемой, если вы также используете горизонтальные вкладки внутри горизонтальных вкладок.

Проблема может возникнуть из-за javscript-кода mdl-tabs. Исходные разработчики могут использовать родительский контейнер вкладок, чтобы находить каждую вкладку под этим контейнером и привязывать события клика к нему. Вот почему создание проблемы. Невозможно понять прямо сейчас из-за минимизации.

Решение: вместо привязки кликов к дочерним вкладкам под родителем. Вам нужно изменить код, чтобы найти контейнер «Ближайший» родительский табурет на основе щелчка и изменить дочерние вкладки на основе найденной родительской вкладки.

Может быть, подавляющее, но это то, что я могу догадаться, происходит.