Раскрывающийся список:
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true">
Bla bla bla
</button>
<ul id="test" name="form_select" class="dropdown-menu">
@foreach ($topics as $topic)
<li><a href="#" onclick="show({{ $loop->index }})" style="font-size: 11px; padding:0px; line-height: 15px;">{{ $topic->title }}</a></li>
@endforeach
</ul>
</div>
Мы используем $loop->index
в качестве дополнительного значения.Они должны быть равны $collection->id
.
DIV:
@foreach($collections as $collection)
<div id="{{ $collection->id }}" class="topic hidden">
<div class="panel panel-default">
...
</div>
</div>
@endforeach
Я добавил класс topic
для идентификации всех divs
(используйте любойхотите) и спрячьте их всех с помощью класса hidden
.Нет необходимости в пользовательских CSS
.
JavaScript:
function show(id) {
$('.topic').addClass('hidden');
$('#' + id).removeClass('hidden');
}
В первой строке добавляется класс hidden
ко всем divs
, чтобы скрыть их,Второй удаляет класс hidden
для конкретного div
.
Я использовал jQuery
, поскольку вы используете эту библиотеку для Bootstrap
.
Все это предполагает, что $loop->index
и $collection->id
имеют одинаковые значения.Если нет, вы можете попробовать заменить $collection->id
на $loop->index
.