Показать сообщение отдельно
  #1 (permalink)  
Старый 31.01.2021, 21:20
Интересующийся
Отправить личное сообщение для lev90 Посмотреть профиль Найти все сообщения от lev90
 
Регистрация: 31.01.2021
Сообщений: 10

Показать скрыть элемент
Добрый день.

В интернете нашел пример скрипта, который показывает и скрывает элементы независимо друг от друга.
<style type="text/css">
.collapsible {
background-color: #777;
color: white;
cursor: pointer:
padding: 18px;
width: 100%;
border: none;
text-align: left;
outline: none;
font-size: 15px;
}
.active,             
.collapsible: hover {
background-color: #555;
}            
.content {
padding: 0 18px;
max-height: 0;
overflow: hidden;
transition: max-height 0.2s ease-out;
background-color: #f1f1f1;
}
</style>

<div class="conteiner">
    <div>
        <div>
            <button class="collapsible">Open Collapsible</button>
        </div>
    </div>
    <div class="content">
        <p>text</p>
    </div>
    <div>
        <div>
            <button class="collapsible">Open Collapsible</button>
        </div>
    </div>
    <div class="content">
        <p>text</p>
    </div>
    <p>My texst</p>
    <div>
        <div>
            <button class="collapsible">Open Collapsible</button>
        </div>
    </div>
    <div class="content">
        <p>text</p>
    </div>
</div>


<script>
let coll = document.getElementsByClassName('collapsible');
for (let i = 0; i < coll.length; i++) {
    coll[i].addEventListener('click', function () {
        this.classList.toggle('active');
        let content = this.parentNode.parentNode.nextElementSibling;
        if (content.style.maxHeight) {
            content.style.maxHeight = null;
        } else {
            content.style.maxHeight = content.scrollHeight + 'px'
        }
    })
}
 </script>


Скрипт работает. Но если я оборачиваю кнопку в дополнительные div-ы, то скрипт уже не работает.

<div class="conteiner">	
 <div>
  <div>
   <div>
    <div> Всего 4 </div>
   </div>
   <div>
    <div><span class="collapsible"> Показать/ скрыть</span></div>	<!-- Нажимаемая кнопка -->
   </div>
   <div>
    <div>
     <div><button color="white">Обзор</button>
      <div><button color="white">Подробнее</button></div>
     </div>
     <div>Текст</div>
    </div>
   </div>
  </div>
 </div>
	
 <div  class="content"> <!-- Показываемый блок -->
  <div>
   <div>
    <div>Текст</div>
   </div>
   <div>
    <div>
     <div>Текст<div>Текст</div></div>
    </div>
   </div>
  </div>
 </div>
</div>


Подскажите пожалуйста, как можно исправить. И как можно сделать автоматическую смену надписей "Показать" и "скрыть".

Заранее всем спасибо!
Ответить с цитированием