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

Как исправить перелючалку (клик работает только один раз)?

  • Вопрос задан
  • 107 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
like-a-boss
@like-a-boss
Признайся,тебяТянетНаКодМужика,ты—программный гей
Боже, больно на это смотреть
$('.main-header__info').click(function() {
  $(this).toggleClass('main-header__info__active');
  
  if ($(this).hasClass('main-header__info__active')) {
    $('.news__block').css({
      'display': 'none'
    });
    $('.main-header__mobile').css({
      'display': 'block'
    });

  } else {
    $('.news__block').css({
      'display': 'block'
    });
    $('.main-header__mobile').css({
      'display': 'none'
    });
  }

});


Как бы я написал:

document.querySelector('.main-header__info').onclick = function() {
  this.classList.toggle('main-header__info__active'); // не знаю, действительно ли вам нужен этот класс. Если нет, то можно убрать эту строку вовсе
  
  var blockNews = document.querySelector('.news__block'),
      headerMobile = document.querySelector('.main-header__mobile'); // Можно достать из этого замыкания и выбирать разово, но тогда переменные будут глобальными
           
  blockNews.style.display = getComputedStyle(blockNews).display === 'block' ? 'none' : 'block';
  headerMobile.style.display = getComputedStyle(headerMobile).display === 'none' ? 'block' : 'none';
}
Ответ написан
alexjet73
@alexjet73
Используйте hasClass
if ($('.main-header__info').hasClass('main-header__info__active')) {
а $('.main-header__info').addClass переместите в else
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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