쿠키를 설정하여 트리 메뉴의 상태를 저장하고 페이지가로드 될 때 쿠키를 다시 읽습니다.
메뉴의 HTML 구조 :
<div> <ul> <li> <a href = "#"#"id ="treemenu_a_1 "> 첫 번째 레벨 메뉴 1 </a> <div id ="submenu_1 "> <ul> <li> <a href ="subpage/a.html "id ="submenu_a_11 "> 2 차 메뉴 1 </a> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> <li> href = "subpage/b.html"id = "submenu_a_1_2"> 두 번째 레벨 메뉴 2 </a> </a> </li> <li> <a href = "#"#"id ="submenu_a_1_3 "> 두 번째 레벨 메뉴 3 </a> </li> <li> <a href ="#"#"#"id ="id = "href ="# 4 </a> </li> <li> <a href = "#"#"#"id = "submenu_a_1_5"> 두 번째 레벨 메뉴 5 </a> </li> </ul> </div> <li> <a href = "#"id = "id ="treemenu_a_ "> 첫 번째 레벨 메뉴 2 </a> <<li id ="<li <li <<li> <<li id = "id = href="#" id="submenu_a_2_1">Second-level menu 1</a></li><li><a href="#" id="submenu_a_2_1_1">Second-level menu 1</a></li><li><a href="#" id="submenu_a_2_1_1">Second-level menu 1 </a> </li> <li> <a href = "#"#"#"id = "submenu_a_2_1_2"> 두 번째 레벨 메뉴 2 </a> </li> <li> <a href = "#"id = "submenu_a_a_a_a_a_a_2_1_3"> 레벨 3 </a> <li id = "<li id ="<li id = "<li id ="submenu_2_ "> href = "#"id = "id ="submenu_a_2_3_11 "> 레벨 4 메뉴 1 </a> </li> <li> <a href ="#"id ="submenu_a_2_1_3_2 "> 레벨 4 메뉴 2 </a> </li> <li> <a href ="#"#"#"#"#"# 3 </a> </li> </ul> </div> </li> <li> <a href = "#"#"id ="submenu_a_2_2 "> 두 번째 레벨 메뉴 2 </a> </li> <li> <a href ="#"id ="submenu_a_2_3 "> 2 차 메뉴 3 </a> </li> <a href ="<a href = " id = "submenu_a_2_4"> 두 번째 레벨 메뉴 4 </a> </li> <li> <a href = "#"id = "id ="submenu_a_2_5 "> 두 번째 레벨 메뉴 5 </a> </li> </li> <li> <a href ="#"id ="treemenu_a_3 "> 2 차 메뉴 3"> id = "submenu_3"> <ul> <li> <a href = "#"#"id ="submenu_a_3_1 "> 두 번째 레벨 메뉴 1 </a> </li> <li> <a href ="#"id ="submenu_a_3_2 </a> </li> <li> <a href = "#"#"#"#" Id = "submenu_a_3_3"> 두 번째 레벨 메뉴 3 </a> </li> <li> <a href = "#"id = "id ="submenu_a_3_4 "> 두 번째 레벨 메뉴 4 </a> </li> <li> <a href ="#"id ="submenu_a_3_5 "> 5 </a> </li> </ul> </div> </li> </ul> </div>
쿠키 도구 수업 읽기 :
// 쿠키 도구 클래스 var cookietool = {// cookiegetCookie 읽기 : function (c_name) {if (document.cookie.length> 0) {c_start = document.cookie.indexof (c_name + "="); if (c_start! = -1) {c_start = c_start + c_name.length + 1; document.cookie.indexof ( ";", c_start); if (c_end == -1) {c_end = document.cookie.length;} return unescape (document. 날짜 (); exdate.setDate (exdate.getDate () + 만료); // 날짜 document.cookie = c_name + "=" + Escape (value) + (value) + ((expreiredays == null)? "": "; expires =" + exdate.togmtstring ());}, // cookiedelCookie : function (c_name) {var exdate = new Date (); // 어제의 날짜 문서 .cookie = c_name + "=; expires =" + exdate.togmtstring ();}};메뉴 이벤트 바인딩 :
// 메뉴 이벤트 바인딩 $ ( '. treemenu a'). bind ( 'click', function () {var $ this = $ (this); var id = $ this.attr ( 'id'); var $ submenu = $ this.next ( '. submenu'); if ($ submenu.length> 0) {// $ (this) .next ( '. submenu : hidden'). 길이> 0 : false; if (flag) {$ submenu.hide ()} var display = 'block'; cookietool.getCookie (id); $ ( '. treemenu'). 찾기 ( '. on'). removeClass ( 'on'). addClass ( 'off'); $ ( '#' + curid) .addclass ( 'on'); $ ( '. treemenu a [class = "off"]). cookietool.delcookie ($ (this) .attr ( 'id'));페이지로드 될 때 메뉴를 재설정합니다
// 페이지로드 $ ( '. treemenu a'). 각 (function () {showmenu ($ (this) .attr ( 'id'));}); // 읽기 쿠키 디스플레이 메뉴 함수 showmenu (id) {var $ this = $ ( '#' + id); var cookie = cookie = cookiet. ($ this.next ( '. submenu'). length> 0) {$ this.next ( '. submenu'). css ( 'display', 쿠키);} else {$ ( '#' + 쿠키) .addclass ( 'on');}}}}.완전한 데모 :
JavaScript av 변경되지 않은 트리 메뉴 (다중 레벨 메뉴) .zip을 새로 고칩니다
참고 : 로컬 Chrome 콘솔은 쿠키를 읽을 수 없으며 Firefox/IE 또는 서버 환경에서 테스트해야합니다.