hronik87
@hronik87
Обитаю в 1С-Bitrix

Почему не работает скрипт?

Всем привет!
$('.inout').click(function(){
		$('.inout').addClass('inout-act').removeClass('inout');
		//$('.calendar-wrapper').css('width', '27%');
		//$('.calendar-wrapper').css('transition', '1s');
	});
	
	$('.inout-act').click(function(){
		//$('.calendar-wrapper').css('width', '1%');
		//$('.calendar-wrapper').css('transition', '1s');
		$('.inout-act').addClass('inout').removeClass('inout-act');
	});

Класс inout удаляется, класс inout-act добавляется при клике 1 раз.
Класс inout-act не удаляется и класс inout не добавляется при клике второй раз.
  • Вопрос задан
  • 163 просмотра
Решения вопроса 2
IonDen
@IonDen
JavaScript developer. IonDen.com
1. Не нужно заменять класс на другой. Нужно добавлять модификатор: inout и inout active
2. Нужно использовать toggleClass
3. Нельзя навешивать обработчик на элемент, которого еще не существует.

В общем это делается так: jsfiddle.net/IonDen/fx94q077
$(".inout").on("click", function () {
    $(this).toggleClass("active");
});
Ответ написан
Используй метод on(). Изначально у элемента нет класса inout-act, соответственно на него не вешается событие.
И еще, удалением класса у элемента ты с него событие не снимешь. А метод on() ставит событие на какой-нибудь родительский элемент, который будет хватать событие и смотреть кто его с генерировал. Тогда у тебя будут работать классы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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