Цитата:
|
Цитата:
|
zevilz,
Чуть позжа - есть идея чисто по клику считывать кол-во parents("UL").length от начала менюшки И по загрузке все эти UL.show() |
Цитата:
<!doctype html> <html> <head> <meta charset="UTF-8"> <style> #nav_menu_content ul { display: none; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var nav = $("#nav_menu_content"), uls = nav.find("ul"); // тут получаем индексы из куки и перебираем их: var showedElems = [0,1]; // индексы из куки for( var i = 0; i < showedElems.length; i++ ) { // отображаем при загрузке то что надо. $( uls[ showedElems[ i ] ] ).show(); } nav.find("a").click(function() { var self = $(this).next(); if ( self.length > 0 ) { var showedElems = []; uls.each(function( index ){ if ( this === self[0] ) { if ( self.css('display') == "none" ) { showedElems[ showedElems.length ] = index; } $( this ).slideToggle( 200 ); } else if ( jQuery.inArray( this, self.parents( "ul" ) ) == -1 ) { $( this ).slideUp( 200 ); } else { showedElems[ showedElems.length ] = index; } }); alert( "вот тут все эти индексы можно сунуть в куку: " + showedElems ); return false; } }); }); </script> </head> <body> <ul class='left_nav_menu' id='nav_menu_content'> <li><a href='#0'>Категория_1</a> <ul> <li><a href="#">Подкатегория_1</a> <ul> <li><a href="view_cat.php?...">Подподкатегория_1</a></li> </ul> </li> <li><a href="#">Подкатегория_2</a> <ul> <li><a href="view_cat.php?...">Подподкатегория_2</a></li> <li><a href="view_cat.php?...">Подподкатегория_3</a></li> </ul> </li> <li><a href="#">Подкатегория_3</a> <ul> <li><a href="view_cat.php?...">Подподкатегория_4</a></li> <li><a href="view_cat.php?...">Подподкатегория_5</a></li> </ul> </li> </ul> </li> <li><a href='#0'>Категория_2</a> <ul> <li><a href="#">Подкатегория_4</a> <ul class="material_cat"> <li><a href="view_cat.php?...">Подподкатегория_6</a></li> </ul> </li> </ul> </li> </ul> |
Если честно, так нифига и не понял как эти кукисы приделать к скрипту...:blink: Сильно не пинайте, я только учусь.:-? Каким то образом сохранилось одно положение в меню и после перезагрузки берется из куки.
|
Вот это "setcookie(Name,val,3600*24*1000);" нужно сунуть вместо алерта? И если это, то что будет name, а что val?
|
Цитата:
$(function(){ var nav = $("#nav_menu_content"), uls = nav.find("ul"); // тут получаем индексы из куки и перебираем их: var showedElems = ( getcookie( "MENU" ) || "" ).split(","); for( var i = 0; i < showedElems.length; i++ ) { // отображаем при загрузке то что надо. $( uls[ showedElems[ i ] ] ).show(); } nav.find("a").click(function() { var self = $(this).next(); if ( self.length > 0 ) { var showedElems = []; uls.each(function( index ){ if ( this === self[0] ) { if ( self.css('display') == "none" ) { showedElems[ showedElems.length ] = index; } $( this ).slideToggle( 200 ); } else if ( jQuery.inArray( this, self.parents( "ul" ) ) == -1 ) { $( this ).slideUp( 200 ); } else { showedElems[ showedElems.length ] = index; } }); // вот эту переменную со строкой засуньте в куки, // примерно так: setcookie( "MENU", showedElems.join(",") ,3600*24*1000 ); return false; } }); }); |
Цитата:
|
Вроде работает, но с Вашими функциями. Щас еще пошаманю
|
Работает все отлично:)
Убрал <style> #nav_menu_content ul { display: none;} </style> И добавил в начало скрипта: $(document).ready(function() { $("ul#nav_menu_content ul").addClass("display_none"); }); (Класс display_none у меня прописан в css) А то при отключении сценариев js в браузере навигация можно сказать вообще бесполезна. Я думаю лучше оставлю ваш код, а плагин jquery cookie выкину. Он все равно только лежал ради навигации. Всем большое спасибо за помощь!:) |
Часовой пояс GMT +3, время: 17:28. |