Mizter,
Кликалось и скрывалось меню, из-за этой Вашей добавки }).click(function() { $(".sub-menu").hide(); $(".highlight").removeClass("highlight"); }); |
Deff,
мне и нужно, чтобы меню исчезало по клику на странице и это записывалось в куки, но мои модификации к сожалению не те функции добавляют, что Я хочу |
Цитата:
<!DOCTYPE html> <html> <head> <title>Песочница</title> <link rel="stylesheet" href="http://artlab.tk/laboratorize/ver.0.1a/my.css" type="text/css" media="screen" /> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> <!--<script type="text/javascript" src="http://artlab.tk/laboratorize/ver.0.1a/my.js"></script>--> <script type="text/javascript"> function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;} function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;} $(document).ready(function() { var nav = $(".menu"); var uls = nav.find("ul"); $('ul li').has('ul').addClass('include'); var coci_MENU= getcookie( "MENU" ); if (coci_MENU) { setcookie( "MENU",coci_MENU ,30*3600*24*1000 ); // тут получаем индексы из куки и перебираем их: var showedElems = ( coci_MENU || "" ).split(","); for( var i = 0; i < showedElems.length; i++ ) { // отображаем при загрузке то что надо. $( uls[ showedElems[ i ] ] ).show(); } } nav.find("a").click(function() { var Lnk=$(this).attr("href"); if(Lnk==''||Lnk.indexOf('#')==0) setcookie( "MENU",1 ,-1); var self = $(this).next(); if ( self.length == 0 ) return; var showedElems = []; uls.each(function( index ){ if ( this === self[0] ) { if ( self.css('display') == "none" ) {showedElems.push(index);} $( this ).toggle();return true; } if ( jQuery.inArray( this, self.parents( "ul" ) ) == -1 ) { $( this ).hide();return true; } showedElems.push(index); }); // эту переменную суём в куки, setcookie( "MENU", showedElems.join(",") ,30*3600*24*1000 ); return false; }); $("body").click(function() { $(".menu").find('ul:visible').hide(); }); }) </script> <style> .sub-menu a { display:inline-block; width:100%; margin:0; } </style> </head> <body style="height:500px;"> <ul class="menu"> <li><a href="#">My Account</a> <ul class="sub-menu"> <li><a href="/laboratorize/ver.0.1a/index2.html">Главная 2</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html" >Dashboard</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html" >Profile</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html">Settings</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html">Send Feedback Follow Link</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html">Sign Out</a></li> </ul> </li> <li><a href="#dashboard" >Dashboard</a> <ul class="sub-menu"> <li><a href="/laboratorize/ver.0.1a/index2.html">Главная 2</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html" >Dashboard</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html" >Profile</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html">Settings</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html">Send Feedback Follow Link</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html">Sign Out</a></li> </ul> </li> <li><a href="/laboratorize/ver.0.1a/index.html" >Profile</a></li> <li class="tap"><a href="/laboratorize/ver.0.1a/index.html">Settings</a></li> <li><a href="/laboratorize/ver.0.1a/index.html">Send Feedback Follow Link</a></li> <li><a href="#signout">Sign Out</a> <ul class="sub-menu"> <li><a href="/laboratorize/ver.0.1a/index2.html">Главная 2</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html" >Dashboard</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html" >Profile</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html">Settings</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html">Send Feedback Follow Link</a></li> <li><a href="/laboratorize/ver.0.1a/index2.html">Sign Out</a></li> </ul> </li> </ul> </body> </html> |
да, только когда жмешь на любое место в раскрывающемся меню, то оно тоже скрывается, нужно это как то устранить
и когда обновляешь страницу, скрывшееся меню от нажатия в любом месте страницы не записывается в куки, и при обновлении остается открытым |
Mizter,
Не вижу этого в примере, скрывается только с переходом, Установите на сайт - дайте ссылку (куки вынесите в отдельный файл) О птичках = возможно у Вас разные подпапки перехода по ссылкам, тогда нужно подправить скрипт куков(или поставить плагин Куков для jQuery Текущий расчитан на постоянный адресный путь |
Часовой пояс GMT +3, время: 03:41. |