victorA
@victorA
Front-End developer

Не срабатывает removeClass ??

$(function(){

	//Search Form Click
	var inputSumbit = $(".top-header__search .btn--submit"),
		searchInput = $(".top-header__search .search-wrapper"),
		wrapperSearch =$(".top-header__search");

	
	inputSumbit.on("click", function(){

		searchInput.slideToggle(250);

		if( searchInput.css("display") == "block" ) {
			inputSumbit.addClass("search-open");
			wrapperSearch.css("background-color", "#2a2a2a");
		}else {
			inputSumbit.removeClass("search-open");
			wrapperSearch.css("background-color", "");
		}

	});

});


При повторном клике на button, для скрытия формы, else не срабатывает.
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Видимо, должно быть что-то вроде этого.
slideToggle - асинхронная операция, код под ней выполняется до ее завершения, поэтому и не работает определение показа элемента.
А чтобы не зависеть от css лучше проверку сделать так: searchInput.is(":visible").
Ну а вообще, конечно, внешний вид должен управляться через стили - вот так. Js не для этого. Думаю, вашу задачу полностью можно решить на css, но это уже далеко за рамками вопроса.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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