Могу ли я указать несколько целей данных для свертывания Twitter Bootstrap?
Я хотел бы выбрать два элемента div для расширения при нажатии на один триггер? Это возможно?
9 ответов
Вы можете просто добавить все идентификаторы, разделенные запятыми в data-target:
<button type="button" class="btn btn-primary dropdown-toggle btn-sm"
data-toggle="collapse" data-target="#demo,#demo1,#demo2">Hide them all</button>
Используйте один и тот же класс для обоих div и установите ваш data-target
в соответствии с этим. Дайте вашему div тоже один и тот же родитель (также может быть классом) и установите data-parent
в соответствии с этим.
<button type="button" class="btn btn-danger" data-parent="#wrap" data-toggle="collapse" data-target=".demo">
simple collapsible
</button>
<div id="wrap">
<div class="demo collapse">
test1
</div>
<div class="demo collapse">
test1
</div>
</div>
Из документации по Bootstrap 3:
Атрибут data-target принимает CSS-селектор для применения свертывания.
Поэтому вы можете использовать разделенный запятыми список идентификаторов, селектор класса и т. Д. Для data-target
значение атрибута:
<button class="btn btn-primary" type="button"
data-toggle="collapse" data-target="#target1,#target2,#target3"
aria-expanded="false" aria-controls="target1,target2,target3">
Вы можете увидеть обширный список действительных селекторов CSS на веб-сайте w3schools.
Если вы хотите скрыть один элемент и показать другой (например, аккордеон начальной загрузки, но без панели), вы можете добавить несколько целей, а также добавить класс "in", чтобы один элемент расширялся при загрузке!
<div class="collapse text-center clearfix in" id="section1">
<h1>This is section 1</h1>
<p>Are you excited about toggling?</p>
</div>
<div class="collapse text-center clearfix alert-warning" id="section2">
<h1>Boo!!</h1>
<p>This is a new sentence</p>
</div>
<button class="btn btn-block btn-primary" data-toggle="collapse" data-target="#section1,#section2">Toggle</button>
В Bootstrap 4 есть решение:
Документация по Bootstrap 4: несколько целей
По крайней мере, вам нужно:
data-toggle="collapse" data-target=".multi-collapse"
для кнопки переключенияclass="collapse multi-collapse"
для каждого элемента вам нужно переключиться
(Хотя несколько идентификаторов в data-target
действительно не работает).
Целевой ответ на данные не работает для меня. Однако вы можете использовать JavaScript для этого.
Сделайте так, чтобы ваша кнопка вызывала JavaScript, например:
$('.collapse-class').collapse('toggle')
Смотрите: https://getbootstrap.com/javascript/.
у меня была такая же проблема, но bootstrap не позволял data-toggle = "tab" рядом с data-toggle = "collapsed", поэтому моя проблема заключалась в том, что я получил
<a type="button" class="btn btn-default btn-lg btn-block " href="#ld-tab-pane-eye" aria-expanded="false" aria-controls="ld-tab-pane-eye" role="tab" data-toggle="tab" aria-haspopup="true" aria-expanded="false" style=" border: 0px ;"> </a>
и это переключение вкладок, но этот
<button type="button" class="navbar-toggle collapsed nav-trigger style-mobile" data-toggle="collapse" data-target="#main-header-collapse" aria-expanded="false" data-changeclassnames='{ "html": "mobile-nav-activated overflow-hidden" }'>
закроет модальную кнопку вкладки переключателя cus была в модальном теперь я делаю это
я добавляю id = "popout" (к первой кнопке) & id = "popoutTrigger" (к отдельной кнопке)
и этот скрипт (jquery)
$( "#popout" ).click(function() {
$( "#popoutTrigger" ).trigger( "click" );
});
когда пользователь нажал кнопку переключателя в модальном режиме после переключения модального окна, это закроет представление о том, что я сделал
Надеюсь, мое странное решение кому-то поможет =)))
В Bootstrap 4 использование одного и того же класса для каждого соответствующего div, похоже, помогло использовать id.
Bootstrap 4 использует document.querySelector вместо document.querySelectorAll. Если это изменится, то все работает.