Сложный вопрос по jQuery

M2
На сайте с 11.01.2011
Offline
341
593

Ребят, добрый день!

Довольно сложный вопрос по jquery. В общем есть меню... демку можно посмотреть здесь.

Объясню в чём суть. Нажали на "Чай" - он должен открыться. Нажали на "Кофе" - закрылся "Чай" открылся "Кофе". Вроде до этого момента всё понятно. Реализуемо без проблем на jQuery.

Дальше - больше. В меню одинаковая разметка:


<div class="coffee_title">
<div class="coffee_title_picture">

</div>

<div class="title_text">
<b>кофе</b>
</div>
</div>

<div class="menu">
<div class="menu_text">
<div class="menu_item">
<div class="menu_item_text">Черный</div>
</div>
<div class="menu_item">
<div class="menu_item_text">
Мокко
</div>
</div>
<div class="menu_item">
<div class="menu_item_text">
Арабика
</div>
</div>
<div class="menu_item">
<div class="menu_item_text">
Капуччино
</div>
</div>
<div class="menu_item">
<div class="menu_item_text">
Американо
</div>
</div>
<div class="menu_item">
<div class="menu_item_text">
Латте
</div>
</div>


</div>
</div>

Это тоже понятно. Потому что сейчас здесь просто много html. А будет одно меню в шаблоне, пункты меню будут браться из базы данных. Я специально сидел, всё это дело унифицировал в CSS. Чтобы потом парки не было.

Вопрос: мы кликнули на чае. Как на jQuery понять, что сворачивать нужно именно меню чая? Разметку менять очень нежелательно, хотелось бы чтобы не было что-то подобного:


.tea_menu{}
.tea_menu_text{}
.tea_menu_item{}
.coffee_menu{}

и т.д. Просто абстрактные .menu, .menu_item и т.д.

Пробовал таким образом:


$('.menulink').bind('click', function()
{
$('.menulink').addClass('unique');
$('.unique .menu').fadeOut();
});

Вот фрагмент разметки с этим элементом:


<div class="tea_title">
<div class="tea_title_picture">

</div>

<div class="title_text">
<a href="#" class="menulink"><b>чай</b></a>
</div>
</div>
<div class="menu">
<div class="menu_text">
<div class="menu_item">
<div class="menu_item_text">Черный</div>
</div>
<div class="menu_item">
<div class="menu_item_text">
Зеленый
</div>
</div>
<div class="menu_item">
<div class="menu_item_text">
Улун
</div>
</div>
<div class="menu_item">
<div class="menu_item_text">
Белый
</div>
</div>

но у меня ничего не выходит, ибо согласно этому коду:


$('.unique .menu').fadeOut();

элемент .menu должен находиться строго внутри элемента .unique. А это не так. Более подробно можно посмотреть разметку на представленной странице.

В общем, надеюсь понятно выразился. Если нет, то ещё раз:

Как понять, что при клике на элементе "Чай" нужно сворачивать именно меню "Чай"?

Всем заранее спасибо за помощь! :)

------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
Veterok2009
На сайте с 28.11.2009
Offline
129
#1

this отменили? :)

M2
На сайте с 11.01.2011
Offline
341
#2

Нет! Но я не могу понять, как его применить в свете именно этой разметки. Где конкретно?

dkameleon
На сайте с 09.12.2005
Offline
386
#3
mark2011:
Вопрос: мы кликнули на чае. Как на jQuery понять, что сворачивать нужно именно меню чая? Разметку менять очень нежелательно, хотелось бы чтобы не было что-то подобного:

судя по коду - у вас какая-то каша в голове.


$('.menulink').bind('click', function()
{
$(this).closest('.menu').find('.collapsed').removeClass('collapsed');
$(this).addClass('collapsed');
});
Дизайн интерьера (http://balabukha.com/)
C
На сайте с 04.02.2005
Offline
291
#4

Глядите сюда

<ul>

<li>Чай

<li>Кофе

<li>Шоколад

$(li).click(function(){

$(this).addClass('active');

$(this).siblings().removeClass('active')

})

Оп... и вся сложность

M2
На сайте с 11.01.2011
Offline
341
#5

Не, я конечно понимаю, что у меня вёрстка не блещет, но перевёрстывать щас..... практически не вариант.

Может в данном случае можно обойтись малой кровью? :)

vandamme
На сайте с 30.11.2008
Offline
675
#6

и проверьте верстку на маленьких экранах 1280 и меньше

dkameleon
На сайте с 09.12.2005
Offline
386
#7
mark2011:
Может в данном случае можно обойтись малой кровью?

подкрутите или мой или Чукчин код под вашу верстку и всё :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий