@khalel2

Как сделать независимые toggle button?

Чтобы каждый открывал именно свой контент.
Сделать индивидуальный идентификатор не пойдет, там 1000 таких кнопок

<button onclick="showHide()" class="toggle__button">Раскрыть</button>
  <h1 class="toggle__elements hide">1</h1>


  <button onclick="showHide()" class="toggle__button">Раскрыть</button>
  <h1 class="toggle__elements hide">2</h1>


  <button onclick="showHide()" class="toggle__button">Раскрыть</button>
  <h1 class="toggle__elements hide">3</h1>


let userSection = document.querySelector(".toggle__elements");
let isShow = true

function showHide(){
  isShow=!isShow
  userSection.classList.toggle("hide", isShow);
}
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
DanArst
@DanArst Куратор тега JavaScript
Гриффиндор в моде при любой погоде!
Ну если учитывать, что блок контента - это соседний элемент кнопки, то можно сделать так:
var elements = document.getElementsByClassName('toggle__button');
Array.from(elements).forEach(function(element) {
      element.addEventListener('click', function() {
           this.nextElementSibling.classList.toggle('hide');
      });
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
theillarionov
@theillarionov
Люблю frontend (иногда это даже взаимно)
Если они идут в строгом порядке друг за другом:
let buttons = document.querySelectorAll(".toggle__elements");
buttons.forEach( button => {
   button.onclick = () => {
       button.nextSibling.classList.toggle("hide")
   }
})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 12:20
15000 руб./за проект
25 апр. 2024, в 12:08
300 руб./за проект
25 апр. 2024, в 11:49
25000 руб./за проект