Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Меню-аккордеон jQuery помощь (https://javascript.ru/forum/jquery/15871-menyu-akkordeon-jquery-pomoshh.html)

onuvidelsolnce 17.03.2011 08:42

Меню-аккордеон jQuery помощь
 
Помогите, пожалуйста, немного изменить скрипт. Взял его отсюда:
http://efimov.ws/main/develop/javasc...accordion.html - 9-ая позиция. Вот демо: http://www.stemkoski.com/downloads/j...nu/example.htm

Меня все устраивает в этом скрипте, только хотелось бы, что бы при повторном нажатии на раскрытую вкладку, она сворачивалась, а не заново раскрывалась. Спасибо.)

Matre 17.03.2011 09:23

Код меню — говно и написан полным идиотом, ничего не смыслящим в JS.
Легче переписать по-нормальному:

<style type='text/css'>
	.accordionContent {
		display: none;
	}
</style>

<script type='text/javascript'>
	var last = null;
	$("div.accordionButton").click(function () {
		last && last != this && $(last).next().slideUp();
		$(this).next().slideToggle();
		last = this;
	});
</script>


Ставить в конец BODY.

onuvidelsolnce 17.03.2011 11:47

Благодарю! Все работает, так как и хотел! Но появилось одно "но" скорее из-за вашего скрипта. Если использовать старый все работает то что мне надо. Поясню:

Из этого скрипта я делаю два уровня списков, каждый друг от друга независем, т.е. для каждого уровня, свой скрипт, свои стили. Так в старом. При нажатии на вкладку одного уровня первого сворачивались только вкладки первого уровня, вкладки второго - второго. А теперь получается они как-то связаны. Так как при нажатии на вкладку второго уровня при раскрытом первом, начинает разворачиваться второй, но при этом сворачивается первый. Как бы убрать эту связи?

И вообще можно ли в одном скрипте это осуществить? Спасибо.)

pti4kina 04.04.2011 02:31

Как внести изменение в код меню-гармошки?
 
Здравствуйте.
Подскажите, пожалуйста, как можно решить проблему с кодом.
У меня он реализован вот так

скрипт
<script>
$(document).ready(function ()
{ $('#menu li').click (function()
{ $(this).children("ul").slideToggle();
} )
</script>

html
<body>
<ul id=menu>
<li> Каталог 1
<ul>
<li>Продукция 1</li>
<li>Продукция 2</li>
</ul>

</li>
<li> Каталог 2
<ul>
<li><a href="1.html"> Продукция 1 </a> </li>
<li> <a href="2.html"> Продукция 2 </a> </li>
</ul>
</ul>

Хочу изменить код так, чтобы при нажатии на элемент списка, открытый элемент закрывался.
Сейчас они открываются/закрываются по их нажатию.

Думала, можно так
<script>
$(document).ready(function ()
{ $('#menu li').click (function()
{ $(this).children("ul").slideToggle().siblings("ul: visible").slideUp("slow");
} )
</script>

но у меня ничего не работает.

Спасибо.


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