Вот делаю типа аккардеона, но только с возможностью блокировки отдельных записей.
Вот часть кода
$(document).ready(function() {
$('ul#my-menu ul').each(function(i) { // Check each submenu:
if ($.cookie('submenuMark-' + i)) { // If index of submenu is marked in cookies:
$(this).show(); // Show it (add apropriate classes)
}else {
$(this).hide(); // Hide it
};
$(this).prevAll('.plus').click(function() {
$(this).css("color","white");
$(this).prev().css("color","black");
$(this).next().removeClass("block");
$(this).next().addClass("active");
$(this).nextAll("ul").slideDown(200);
$.cookie('submenuMark-' + i, 'opened', {expires: null, path: '/'}); // Delete mark from cookie (submenu is hidden):
$.cookie('submenuMark2-' + i, null, {expires: null, path: '/'});
/*ВОТ ЗДЕСЬ ДОЛЖНО ПРОВЕРЯТЬСЯ ЕСЛИ ЛИ КАКОЙ-ТО ОТКРЫТЫЙ ТЕКСТ И ЕГО ЗАКРЫТЬ НУЖНО*/
});
в этой части кода $(this).prevAll('.plus').click(function() {
если нажимаешь + одно из меню разблокируется.и скрытый текст открывается, все отлично и работает ,но нужна одна доработка,а именно, когда нажал на + скрытый текст открылся но нужно чтобы если был какой-то другой раскрыт ,его закрыть , в другой части этого кода, есть такое, но я как-то не могу разобраться. как его изменить для + события, в коде вверху я пометил место где я думаю надо вставить проверку и закрытие предудущих открытых текстов.
сам html
<ul id="my-menu" class="sample-menu">
<li><a href="#0" class="minus activetrigger">-</a><a href="#0" class="plus blocktrigger">+</a><a href="#0" class="menu active">BRAUTKLEIDER</a>
<ul>Текс</ul></li>
<li><a href="#0" class="minus activetrigger">-</a><a href="#0" class="plus blocktrigger">+</a><a href="#0" class="menu active">BRAUTACCESSOIRES</a>
<ul>Text2</ul></li>
Вот сам код закрытие других вкладок, в другом месте кода
$(this).prev().click(function() { // Attach an event listener
var this_i = $('ul#my-menu ul').index($(this).next()); // The index of the submenu of the clicked link
if ($(this).next().css('display') == 'none' && ($.cookie('submenuMark2-' + i) != 'blocked' || $.cookie('submenuMark2-' + i) == 'undefined')) {
// When opening one submenu, we hide all same level submenus:
$(this).parent('li').parent('ul').find('ul').each(function(j) {
if (j != this_i) {$(this).slideUp(200, function () {cookieDel($('ul#my-menu ul').index($(this)));});}
});
// :end