Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jQuery Toggle Function (https://javascript.ru/forum/jquery/49785-jquery-toggle-function.html)

arborik 28.08.2014 11:57

jQuery Toggle Function
 
Всем привет.
Столкнулся с такой проблемой.
При клике на ссылку, должна меняться высота шапки, при повторном клике, высота еще раз меняется.

ul.navigation, скрывается и показывается корректно. А вот высота .header-wrap при клике меняется на 207 пикселей, при повторном клике, высота остается 207 пикселей.

В чем моя ошибка?

Спасибо!

<div class="menu">												<!-- Menu -->
				<div class="login-menu">									<!-- Login Menu -->
					<ul id="sub-menu-login">								<!-- Login Sub Menu -->
						<li>
							<a href="#">Stas</a>
							<ul>
								<li><a href="#">My Profile</a></li>
								<li><a href="#">My</a></li>
								<li><a href="#">Help</a></li>
								<li><a href="#">Sign Out</a></li>
							</ul>
						</li>												<!-- Login Sub Menu END-->
					</ul>
				</div>
				<ul class="navigation">										<!-- Navigation-->
					<li>
						<a href="#">My Feed</a>
						<span>Videos shared <br> with me</span>
					</li>
					<li>
						<a href="#" class="active">Library</a>
						<span>My private uploaded <br> content</span>
					</li>
					<li>
						<a href="#">Shared</a>
						<span>My shared content</span>
					</li>
					<li>
						<a href="#">Groups</a>
						<span>Create and manage <br> sharing lists</span>
					</li>
				</ul>														<!-- Navigation END-->
			</div>
			<div class="collapse-nav"></div>

$(".collapse-nav").click(function(){
			$('ul.navigation').toggle(
				function () {
					$(".header-wrap").css("cssText", "height: 80px !important;");
				},
				function () {
					$(".header-wrap").css("cssText", "height: 207px !important;");
				}
			);
	});

ixth 28.08.2014 12:04

jQuery какой версии? С 1.8 такое поведение — deprecated: http://api.jquery.com/category/depre...-1.8/#post-565

BETEPAH 28.08.2014 12:08

Хорошей практикой является разделение js и css. Заведите класс с нужными свойствами и пользуйте .toggleClass()

arborik 28.08.2014 12:14

Проблема в том, что с классами тоже не работает.
jQuery версия 2.1.1

arborik 28.08.2014 12:20

Спасибо!
Решил вопрос таким способом.
Конечно, я думаю это не лучший вариант, но все же работает как надо.

$(".collapse-nav").click(function(){
			$('ul.navigation').toggle();
			$('.header-wrap').toggleClass("height207");
	});

BETEPAH 28.08.2014 13:56

Цитата:

Сообщение от arborik
с классами тоже не работает

Цитата:

Сообщение от arborik
но все же работает как надо

:)

arborik 28.08.2014 16:47

Все же:)
Руки не с того места:)
Просто пробовал, с двумя классами. А оказалось, что нужно с одним:)
Спасибо за помощь!
Очень много узнаю!


Часовой пояс GMT +3, время: 09:39.