Сергей Ракипов,
потому что в строке 48 ошибка, строка 51 не может работать со строкой 48. |
Что у вас будет в coll?
Такое content.style.maxHeight = null; тоже нельзя. Свойство стиля - это строка. Если надо удалить, то ставят пустую строку. |
рони,
Я запустил цикл for потому что должно было быть несколько блоков И вот все исправил спасибо. по нулл понял, но если често оно и с нул работает и с пустой строкой.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
.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: 0px;
overflow: hidden;
transition: max-height 0.2s ease-out;
background-color: #f1f1f1;
}
</style>
</head>
<body>
<button class="collapsible">Open Collapsible</button>
<div class="content">
Лишь явные признаки победы институционализации неоднозначны и будут смешаны с не уникальными данными до степени совершенной неузнаваемости, из-за чего возрастает их статус бесполезности. В своём стремлении повысить
качество жизни, они забывают, что экономическая повестка сегодняшнего дня обеспечивает широкому кругу (специалистов) участие в формировании инновационных методов управления процессами. Сложно сказать, почему многие известные личности будут
объявлены нарушающими общечеловеческие нормы этики и морали.
</div>
<button class="collapsible">Open Collapsible</button>
<div class="content">
Лишь явные признаки победы институционализации неоднозначны и будут смешаны с не уникальными данными до степени совершенной неузнаваемости, из-за чего возрастает их статус бесполезности. В своём стремлении повысить
качество жизни, они забывают, что экономическая повестка сегодняшнего дня обеспечивает широкому кругу (специалистов) участие в формировании инновационных методов управления процессами. Сложно сказать, почему многие известные личности будут
объявлены нарушающими общечеловеческие нормы этики и морали.
</div>
<script>
let coll = document.querySelectorAll(".collapsible");
// let content = document.querySelector(".content");
for (let i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("active");
let content = this.nextElementSibling;
if (content.style.maxHeight) {
content.style.maxHeight = ""
} else {
content.style.maxHeight = content.scrollHeight + "px";
}
})
}
</script>
</body>
</html>
|
А какая здесь ошибка
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
.collapse__content{
display: none;
}
.collapse__content_open{
display: block;
}
</style>
</head>
<body>
<div class="collapse">
<div class="collapse__hitarea">Toggle</div>
<div class="collapse__content">Text</div>
</div>
<div class="collapse">
<div class="collapse__hitarea">Toggle</div>
<div class="collapse__content">Text</div>
</div>
<script>
const hitarea = document.querySelectorAll('.collapse__hitarea')
const content = document.querySelectorAll('.collapse__content')
const createCollapse = (hitarea, content) => {
hitarea.addEventListener('click', () => {
content.classList.toggle('collapse__content_open')
})
}
const collapse = document.querySelectorAll('.collapse');
collapse.forEach(createCollapse);
</script>
</body>
</html>
|
Сергей Ракипов,
надо запомнить что свойства элемента, отличаются от свойств списка элементов. ваш код, это фантазия на тему, а не использование js. |
рони,
То есть вот эта запись content.classList.toggle('collapse__content_open') она не пойдет? если да то какое тогда свойства брать? |
Сергей Ракипов,
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
.collapse__content {
display: none;
}
.collapse__content_open {
display: block;
}
</style>
</head>
<body>
<div class="collapse">
<div class="collapse__hitarea">Toggle</div>
<div class="collapse__content">Text</div>
</div>
<div class="collapse">
<div class="collapse__hitarea">Toggle</div>
<div class="collapse__content">Text</div>
</div>
<script>
const hitarea = document.querySelectorAll('.collapse__hitarea');
const content = document.querySelectorAll('.collapse__content');
const createCollapse = (button, i) => {
button.addEventListener('click', () => {
content[i].classList.toggle('collapse__content_open')
})
}
hitarea.forEach(createCollapse);
</script>
</body>
</html>
|
рони,
Правильно ли я понял что button это элемент <div class="collapse__hitarea">Toggle</div> а i это индекс. и эмент "услышал" клик запустил функцию где <div class="collapse__content">Text</div> с индексом i убрал или добавил класс. Но я не могу понять как i понял что он нулевой или первый |
Сергей Ракипов,
foreach |
рони,
я читал это там не написано это вот почему я кликнул на вторую кнопку а а он открыл первый блок, вот что ему сказало что при клике на первую втору кнопку он должен открыть элемент под индексом 1 а не к примеру 0 |
| Часовой пояс GMT +3, время: 18:47. |