Задать вопрос
@timka92
Новичок

Как переписать код на более современный JS?

Здравствуйте! Подскажите пожалуйста как переписать код на более современный код JS. Делаю менюшку для сайта и изучаю JS нашел такой код он работает, при клике добавляет 2 динамических класса на 2 разных блока, но пишут на форуме что код устаревший. Как исправить?
const menu = document.querySelector('.burger-menu').onclick = function() {
    document.querySelector('.menu__list').classList.toggle('active-menu')
    document.querySelector('.burger-menu').classList.toggle('active');
};
  • Вопрос задан
  • 2844 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
@historydev Куратор тега JavaScript
Редактирую файлы с непонятными расширениями
Всё с этим кодом в плане "современности" нормально.
А вот в плане читаемости и переиспользования - нет.

Можно например вот так переписать:

const menu = document.querySelector('.burger-menu');
const menuList = document.querySelector('.menu__list');
const activateMenu = () => (menuList.classList.toggle('active-menu'), menu.classList.toggle('active'));

menu.addEventListener('click', activateMenu, true);
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Mike_Ro
@Mike_Ro Куратор тега JavaScript
Python, JS, WordPress, SEO, Bots, Adversting
Подскажите пожалуйста как переписать код на более современный код JS.

Зачем?
нашел такой код он работает, при клике добавляет 2 динамических класса на 2 разных блока

Не добавляет, а переключает.
но пишут на форуме что код устаревший

На заборе пишут, что пора прыгать из окна.
Как исправить?

addEventListener()
Ответ написан
Комментировать
spartfin
@spartfin
spartfin. ru
Может они что-то типо этого ждут:
const menu = document.querySelector('.burger-menu').addEventListener('click', () => {
    document.querySelector('.menu__list').classList.toggle('active-menu')
    document.querySelector('.burger-menu').classList.toggle('active');
});
Ответ написан
@alexalexes
Эта пуленепробиваемая конструкция будет работать и через 100 лет. Ничего не меняйте.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы