@HellAzi

Как сделать, чтобы после 1-го нажатия добавлялся блок, после 2-го тоже добавлялся, а вот после 3-го скрывалось всё?

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


HTML
<button class="collapsible"> Open</button>
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
Нужно почитать про замыкания
https://developer.mozilla.org/en-US/docs/Web/JavaS...
евент хендлер можно выдавать из замыкания т там же хранить счетчик, который на третьем клике сбрасывать, и возвращать все в закрытый стейт. Можно счетчик хранить в глобальной переменной, но это негативно скажется на масштабируемости, читаемости и поддерживаемости вашего кода.
А можно просто заплатить денег и вам напишут.
И еще погуглите как оформлять код на хабре
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы