Доброе время суток! Очень понравилось горизонтальное меню сайта
http://worldoftanks.ru/ , особенно наличие списков завязанных с одним из пунктов меню (работают в паре).
Собственно вся проблема в поиске двух кнопок работающих в паре (пункта меню + соответсвующего ему списка)
Ну, например, необходимо обработать событие active при нажатии на одну из кнопок. Таким образом, при клике на один из элементов (списка или пункта меню), - загораются оба. При этом, предыдущий (активный) пункт меню (возможно пункт меню+список) нужно погасить.
Сделал свою реализацию, все работает, но код чет громоздко выглядит, можно ли как-нибудь упростить?
Весь код приводить не буду (если нужно выложу), хотелось бы сначала разобрать по пунктам:
1 Есть переменная которая содержит все пункты меню
var li_tabs=$('#horisontal-tabs li');
1.1 Произвожу поиск активных элементов (чтобы потом их погасить). Т.е. если есть список, то и список, и пункт меню будут активны (на сайте там сложнее, ну для начала пусть будет так).
var active_old_tabs = $(li_tabs).filter(".active");
1.2 Определение начальной позиции старых активных кнопок (можно ли короче получить индекс первой активной кнопки?)
var start_for_old=$(li_tabs).filter(".active").first().prevAll('li').length; //Определение начальной позиции старых кнопок
1.3 Определение конечной позиции (т.е +1 или +2) в зависимости есть список или нет
var stop_for_old=(start_for_old + active_old_tabs.length);
1.4 Изминения стиля старых активных кнопок
//Изменение стилевого оформеления старых кнопок----
for(var j=start_for_old; j<stop_for_old; j++){
$(li_tabs[j]).css('background-position',li_bg_index[j] + "px 0px");
};
Вообщем в заключении, что хотел...
1 Возможно ли получить сравнительно проще индексы активных элементов (п.п. 2..3) относительно элементов которые содержит переменная li_tabs (п.1)?
2 Для активации обеих кнопок (если есть еще список) необходимо производить доп. поиск меню или списка (в зависимости от того на что было нажато). Реализовал поиск по id следующим образом:
var active_new_tabs = $(this).add($(this).siblings("#" + $(this).attr('id')));
Варианты проще существуют?