Итак, я делаю это базовое c задание из университета, касающееся DOM Manipulation.
По сути, у меня есть пользовательские профили на странице HTML, и есть 2 радиоблока - Unlock и Lock. Поэтому, когда вы переключаете «Разблокировать» и нажимаете кнопку «Показать больше», он показывает вам данные для этого профиля и меняет название кнопки на «Скрыть это». Проблема в том, что я нажимаю «Показать больше», затем нажимаю «Скрыть это», а затем, когда я снова нажимаю «Показать больше», это не работает. Как будто весь слушатель событий перестает работать.
function lockedProfile() {
const $buttons = document.getElementsByTagName('button');
Array.from($buttons).forEach(button => {
button.addEventListener('click', e => {
const parent = e.currentTarget.parentNode;
const checkBox = parent.children[4];
if (checkBox.checked) {
parent.children[9].style.display = 'block';
parent.children[10].textContent = 'Hide it';
button.addEventListener('click', () => {
if (checkBox.checked) {
parent.children[10].textContent = 'Show More';
parent.children[9].style.display = 'none';
}
});
}
});
});
}
Я не знаю, насколько уместен код HTML, но вот, если вы хотите его проверить:
https://pastebin.com/hDaiKTTZ
Спасибо!