Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2021, 21:13   #1
info50
 
Регистрация: 31.01.2021
Сообщений: 4
По умолчанию Показать скрыть элемент

Добрый день.

В интернете нашел пример скрипта, который показывает и скрывает элементы независимо друг от друга.

Код:
<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>
Подскажите пожалуйста, как можно исправить. И как можно сделать автоматическую смену надписей "Показать" и "скрыть".

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


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрыть и показать слои spoon100500 JavaScript, Ajax 15 28.10.2016 11:49
Скрыть/Показать панель UKRtortik Общие вопросы Delphi 10 01.06.2014 22:20
Помогите скрыть-показать формы. spotip Общие вопросы Delphi 2 21.05.2014 14:43
Показать/скрыть edit`ы Rapala Общие вопросы Delphi 3 11.05.2010 09:20
Показать и скрыть фигуры Иванов_ДМ Microsoft Office Excel 5 28.04.2009 16:49