Вы можете легко контролировать видимость элемента либо внутри элемента, на который вы нажимаете, либо после него, используя класс, который вы переключаете.Вот пример управления div после одного из div, который управляет переключением:
document.getElementById("container").addEventListener("click", function(e) {
var toggleDiv = e.target.closest(".toggle");
if (toggleDiv && this.contains(toggleDiv)) {
toggleDiv.classList.toggle("closed");
}
});
.closed + .detail {
display: none;
}
<div id="container">
<div class="toggle closed">Product A</div>
<div class="detail">Details about Product A</div>
<div class="toggle closed">Product B</div>
<div class="detail">Details about Product B</div>
<div class="toggle closed">Product C</div>
<div class="detail">Details about Product C</div>
</div>
Ключевые биты:
- Скрытие деталей с помощью CSS с помощью соседнего комбинатора (
+
)) - Переключение класса на переключение div
Я использовал делегирование событий, чтобы подключить обработчик, но вы могли бы вместо этого подключить его к каждому отдельному div
, если хотите.Обратите внимание, что метод Element#closest
, который я использовал, является относительно новым, вам может понадобиться полифилл или цикл на parentNode
.