Задать вопрос
@igor042018

Оптимизация js кода, нормально ли?

https://codepen.io/igor72537253/pen/ZEMGNBy

Подскажите пожалуйста можно ли как-то улучшить, упростить строки в функции openCloseMenu()

Нормальный ли прием с arrayElemOnClick ?
  • Вопрос задан
  • 184 просмотра
Подписаться 2 Простой 2 комментария
Решения вопроса 1
@wakenbyWork
Переписал на ES6, думаю если вам интересна оптимизация, то и современный стиль вызовет интерес :)

window.addEventListener('load', () => {
  const toggle = document.querySelector('#js-toggle')
  const body = document.querySelector('#js-body')
  const nav = document.querySelector('#js-nav')
  const menuBg = document.querySelector('#js-menu-bg')
  const toggleNav = document.querySelector('#js-toggle-nav')
  
  const openCloseMenu = () => {
    toggle.classList.toggle('toggle--active')
    body.classList.toggle('body--overflow')
    nav.classList.toggle('header__nav--active')
    menuBg.classList.toggle('menu-bg--active')
  }

  for (const clickEl of [toggle, toggleNav, menuBg]) {
    clickEl.addEventListener('click', openCloseMenu)
  }
})



Нормальный ли прием с arrayElemOnClick ?


Вполне, у вас элементы по которым можно кликнуть, еще имеют смену класса при клике.
Без данного условия, можно создать специальный класс или data-attr, чтобы одним querySelectorAll найти все интерактивные элементы, и через цикл так-же добавить click.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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