Показать сообщение отдельно
  #1 (permalink)  
Старый 01.03.2012, 17:40
Аспирант
Отправить личное сообщение для vladimircape Посмотреть профиль Найти все сообщения от vladimircape
 
Регистрация: 25.01.2012
Сообщений: 95

сокрытие открытых окон
Вот делаю типа аккардеона, но только с возможностью блокировки отдельных записей.
Вот часть кода

$(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
Ответить с цитированием