Lara164
@Lara164
начинающий верстальщик html, css

Почему класс добавляется и сразу удаляется?

Ребята, 100 раз добавляла и удаляла класс по клику, но почему сегодня он добавляется и сразу удаляется, просто мозг дымится 5e70be6093c73447191268.png

https://codepen.io/Lareta/pen/abOKoeq
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ответы на вопрос 2
Seasle
@Seasle Куратор тега JavaScript
Код в песочницу можно?

UPD:
1. Получаем event и сбрасываем его.
menuToggle.addEventListener('click', function (event) {
    event.preventDefault();
    ...
});

2. this меняем на menuToggle.
3. Меняем HTML.
<button class="menu-toggle" id="menu-toggle">
    <span class="menu-toggle__span"></span>
</button>

4. Меняем CSS.
.menu-toggle {
    width: 60px;
    height: 60px;
    padding: 0;
    border: none;
    display: flex;
    justify-content: center;
    align-items: center;
    background: none;
    z-index: 15;
}

.menu-toggle.active .menu-toggle__span {
    background-color: transparent;
}

.menu-toggle.active .menu-toggle__span:before {
    transform: rotate(45deg);
    top: 0;
}

.menu-toggle.active .menu-toggle__span:after {
    transform: rotate(-45deg);
    top: 0;
}


Двойное событие происходило из-за checkbox'а внутри «кнопки».
Ответ написан
wayheming
@wayheming
Первый ответ в гугле

The simplest solution is to create the new handler only once:
var newHandle = function(event) { handle(event, myArgument); };

el.addEventListener("click", newHandle, false);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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