сокрытие открытых окон
Вот делаю типа аккардеона, но только с возможностью блокировки отдельных записей.
Вот часть кода $(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 |
пока что придумал
var this_i = $('ul#my-menu ul').eq(1); $(this).parent('ul').find('ul').each(function(j) { if (j != this_i) {$(this).slideUp(200);} }); |
Часовой пояс GMT +3, время: 06:36. |