Мобильное меню не закрывается

274
25 октября 2017, 05:29

Есть элемент i при клике на который открывается меню и значек меняется на крестик путем замены класса, так же у элемента меняется id что бы я мог закрыть его.Проблема в том, что Js тупо не хочет закрывать элемент, хотя с открытием проблем нет, так же классы и id меняются.В чем проблема??

//Menu for small devices
    $('#menu-btn-op').click(function(){
    $('.menu-header-menu-container').css('display','block');
    $('#menu-btn-op').attr('class','fa fa-times');
    $('#menu-btn-op').attr('id','menu-btn-cl');
});

$('#menu-btn-cl').click(function(){
    $('.menu-header-menu-container');
    $('#menu-btn-cl').attr('class','fa fa-bars');
    $('#menu-btn-cl').attr('id','menu-btn-op');
});

Answer 1

К тому моменту как вы вешаете событие click на элемент #menu-btn-op, этого элемента ещё не существует.

Сделайте так

$('a').on('click', function(){ 
  $('p').toggle(); 
  // если нужно дополнительные условия 
  if ($(this).is(':visible')) { 
    // меню открыто 
  } else { 
    // меню закрыто 
  } 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<a href="javascript:">toggle menu</a> 
<p style="display: none">Menu element</p>

READ ALSO
Не объявляется глобальная переменная [дубликат]

Не объявляется глобальная переменная [дубликат]

На данный вопрос уже ответили:

267
Анимация animate.css

Анимация animate.css

Всем приветХочу сделать анимацию корзины с помощью файла animate

276
Slick slider изменить кол-во слайдов после инициализации

Slick slider изменить кол-во слайдов после инициализации

Как можно изменить количество отображаемых слайдов у slick slider, при изменении экранаНа текущей момент решением является - скрытие старого слайдера...

289