@sashka123456765432

Что не так с кодом?

<!DOCTYPE html>
<html lang="en">
<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>
    <link rel="stylesheet" href="index.css">
</head>
<body>
    <nav>
        <ul>
            <li data-hide="hide">Hide</li>
            <li data-show="show">Show</li>
        </ul>
    </nav>
    <div class="item"></div>
    <div class="item"></div>
    <script src="index.js"></script>
</body>
</html>

document.querySelector('nav').addEventListener('click', event => {
    if(event.target.tagName !== 'LI') {
        return false
    }
    let classHide = event.target.dataset['hide']
    let classShow = event.target.dataset['show']
    document.querySelectorAll('.item').forEach(elem => {
        if(!elem.classList.contains(classHide)) {
            elem.classList.add("hide")
        }else if(!elem.classList.contains(classShow)) {
            elem.classList.remove("hide")
        }
    })
})

При нажатии на Hide к тегу добавляется класс .hide, но при нажатии на Show ничего не происходит. Как это исправить
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
sinneren
@sinneren
let classHide = event.target.dataset['hide']
    let classShow = event.target.dataset['show']

в 1 из 2 случаев 1 из 2 будет undefined.
Ответ написан
Ваш ответ на вопрос

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

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