Хобрук: Ваш путь к мастерству в программировании

Управление несколькими вкладками с помощью одной навигационной вкладки

У меня есть обычная вкладка Twitter Bootstrap 3. Что я хочу сделать, так это управлять несколькими
контейнерами tab-content с одним элементом nav-tabs.

Вот пример: jsfiddle

В этом примере, когда я меняю вкладки, меняется только первая. Я хочу, чтобы оба контейнера изменились, а не только первый.

Спасибо!


Ответы:


1

Здесь я обновляю ваш jsfiddle

Я добавляю атрибут data-target к элементам a и меняю идентификаторы во втором содержимом вкладки.

Я изменил эти строки,

Ваш:

<li class="active"><a href="#home" data-toggle="tab">C1</a></li>
<li><a href="#profile" data-toggle="tab">C2</a>  </li>

Мое обновление:

<li class="active"><a href="#home" data-target="#home, #home_else" data-toggle="tab">C1</a></li>
<li><a href="#profile" data-target="#profile, #profile_else" data-toggle="tab">C2</a>  </li>

И вторая вкладка-контент, Yours:

<div id="myTabContent" class="tab-content">
    <div class="tab-pane fade in active" id="home">
        <p>Content 1.</p>
    </div>
    <div class="tab-pane fade" id="profile">
        <p>Content 2.</p>
    </div>
</div>

Мое обновление:

<div id="myTabContent2" class="tab-content">
    <div class="tab-pane fade in active" id="home_else">
        <p>Content 1.</p>
    </div>
    <div class="tab-pane fade" id="profile_else">
        <p>Content 2.</p>
    </div>
</div>
01.11.2013
  • Есть ли решение для Bootstrap 4? 22.01.2018

  • 2

    Вместо этого вы должны просто использовать класс. Я просто работал над вкладками Bootstrap 3 внутри модального окна. Пытался открыть модальное окно на правильной вкладке, но мне нужно было открыть две вкладки, одну для модального заголовка и одну для содержимого, с дополнительными вкладками в нижнем колонтитуле.

    Я использовал класс, и это сработало. Итак, измените <div class="tab-pane fade in active" id="home"> на <div class="tab-pane fade in active home"> и <a href="#home" data-toggle="tab"> на <a href=".home" data-toggle="tab">... у меня сработало.

    20.06.2014
  • Это просто и эффективно. 12.10.2016

  • 3

    ID должен быть уникальным.

    Прочтите два элемента HTML с одинаковыми Атрибут id: Насколько все плохо на самом деле?

    проблема с вашим кодом

    Два элемента с id home, profile и myTabContent.

    <div id="myTabContent" class="tab-content">
        <div class="tab-pane fade in active" id="home">
            <p>Content 1.</p>
        </div>
        <div class="tab-pane fade" id="profile">
            <p>Content 2.</p>
        </div>
    </div>
    
    <hr>
    
    <div id="myTabContent" class="tab-content">
        <div class="tab-pane fade in active" id="home">
            <p>Content 1.</p>
        </div>
        <div class="tab-pane fade" id="profile">
            <p>Content 2.</p>
        </div>
    </div>
    

    и вы даете href="#home", который будет нацелен на первый элемент с идентификатором. Не все элементы с идентификатором.

    <ul id="myTab" class="nav nav-tabs">
        <li class="active"><a href="#home" data-toggle="tab">C1</a></li>
        <li><a href="#profile" data-toggle="tab">C2</a></li>
    </ul>
    
    01.11.2013
  • Хм.. да, я знаю, что идентификатор должен быть уникальным, просто даже если я меняю идентификаторы на классы, он все равно не работает для меня. Приведи мне пример. Я не уверен, что я делаю неправильно. Приведенный выше пример взят из документации. 01.11.2013

  • 4

    data-target не работает Bootstrap4.

    Это версия Bootstrap4.

    <!doctype html>
    <html lang="ja">
      <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    
        <title>Hello, world!</title>
      </head>
      <body>
      <ul class="nav nav-tabs" id="myTab" role="tablist">
        <li class="active"><a href="#home" data-toggle="tab" data-target="#home, #home_else" aria-selected="true" id="home_tab">Home</a></li>
        <li><a href="#profile" data-toggle="tab" data-target="#profile, #profile_else" aria-selected="false" id="profile_tab">Profile</a></li>
        <li><a href="#messages" data-toggle="tab" data-target="#messages, #messages_else" aria-selected="false" id="messages_tab">Messages</a></li>
        <li><a href="#settings" data-toggle="tab" data-target="#settings, #settings_else" aria-selected="false" id="settings_tab">Settings</a></li>
      </ul>
    
      <div class="tab-content">
        <div class="tab-pane active" id="home" aria-labelledby="home_tab" role="tabpanel">...1</div>
        <div class="tab-pane" id="profile" aria-labelledby="profile_tab" role="tabpanel">...2</div>
        <div class="tab-pane" id="messages" aria-labelledby="messages_tab" role="tabpanel">...3</div>
        <div class="tab-pane" id="settings" aria-labelledby="settings_tab" role="tabpanel">...4</div>
      </div>
      
      <div class="tab-content">
        <div class="tab-pane active" id="home_else" aria-labelledby="home_tab">...11</div>
        <div class="tab-pane" id="profile_else" aria-labelledby="profile_tab">...22</div>
        <div class="tab-pane" id="messages_else" aria-labelledby="messages_tab">...33</div>
        <div class="tab-pane" id="settings_else" aria-labelledby="settings_tab">...44</div>
      </div>
    
    
    
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
        <script>
        $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
          var activated_tab = e.target // activated tab
          var previous_tab = e.relatedTarget // previous tab
          if(activated_tab.id === 'home_tab') {
            $('#home_else').css('display', 'block');
            $('#profile_else').css('display', 'none');
            $('#messages_else').css('display', 'none');
            $('#settings_else').css('display', 'none');
          };
          if(activated_tab.id === 'profile_tab') {
            $('#home_else').css('display', 'none');
            $('#profile_else').css('display', 'block');
            $('#messages_else').css('display', 'none');
            $('#settings_else').css('display', 'none');
          }
          if(activated_tab.id === 'messages_tab') {
            $('#home_else').css('display', 'none');
            $('#profile_else').css('display', 'none');
            $('#messages_else').css('display', 'block');
            $('#settings_else').css('display', 'none');
          }
          if(activated_tab.id === 'settings_tab') {
            $('#home_else').css('display', 'none');
            $('#profile_else').css('display', 'none');
            $('#messages_else').css('display', 'none');
            $('#settings_else').css('display', 'block');
          }
          // 処理,,,,,
        });
      </script>
      </body>
    </html>
    
    15.10.2020
    Новые материалы

    Пожалуй, лучший пост, который я читал за последнее время.
    Пожалуй, лучший пост, который я читал за последнее время. Мне за 30, и я могу относиться к большей части истории. Действительно отличные идеи, которые помогли мне снова сосредоточиться на..

    100 дней кода машинного обучения — День 097
    Подведение итогов дня 096 В дни 095 и 096 мы говорили о том, как мы слышим звук в пространстве: время интерауральной задержки, передаточная функция, связанная с головой, а также мы говорили..

    Какова ваша «история данных»?
    Представление концепций продуктов для данных и машинного обучения заинтересованным сторонам и руководству Все любят данные. Все любят говорить, как будто понимают данные. Всем нравится..

    Все, что вам нужно знать о «Внимании» и «Трансформерах» — Углубленное понимание — Часть 2
    Внимание, Самостоятельное внимание, Многоголовое внимание, Маскированное многоголовое внимание, Трансформаторы, BERT и GPT В предыдущем рассказе я объяснил, что такое механизм внимания, а также..

    Расставание с локальным хранилищем
    Что такое локальное хранилище Локальное хранилище — это механизм, который позволяет веб-приложениям хранить данные на стороне клиента. Это часть API веб-хранилища, которое также включает в себя..

    CycleGAN: как машинное обучение обучает непарному преобразованию изображения в изображение
    Недавно я прочитал статью CycleGAN ( ссылка ), которая показалась мне очень интересной, потому что модели CycleGAN обладают невероятной способностью точно преобразовывать изображения во что-то, чем..

    «Изучение передовых технологий: подробный обзор последних инноваций в области технологий…
    Технологии постоянно развиваются, и последние инновации в технологической отрасли могут изменить наш образ жизни и работы так, как мы никогда не считали возможным. В этой статье подробно..