最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js 通過(guò)cookie實(shí)現(xiàn)刷新不變化樹形菜單

 更新時(shí)間:2014年10月30日 17:03:13   投稿:whsnow  
通過(guò)設(shè)置cookie來(lái)保存樹形菜單的狀態(tài),在頁(yè)面加載時(shí)重新讀取cookie來(lái)設(shè)置菜單

通過(guò)設(shè)置cookie來(lái)保存樹形菜單的狀態(tài),在頁(yè)面加載時(shí)重新讀取cookie來(lái)設(shè)置菜單。

菜單的HTML結(jié)構(gòu):

<div class="treemenu">
<ul>
<li>
<a href="#" id="treemenu_a_1">一級(jí)菜單一</a>
<div class="submenu" id="submenu_1">
<ul>
<li><a href="subpage/a.html" id="submenu_a_1_1">二級(jí)菜單一</a></li>
<li><a href="subpage/b.html" id="submenu_a_1_2">二級(jí)菜單二</a></li>
<li><a href="#" id="submenu_a_1_3">二級(jí)菜單三</a></li>
<li><a href="#" id="submenu_a_1_4">二級(jí)菜單四</a></li>
<li><a href="#" id="submenu_a_1_5">二級(jí)菜單五</a></li>
</ul>
</div>
</li>
<li>
<a href="#" id="treemenu_a_2">一級(jí)菜單二</a>
<div class="submenu" id="submenu_2">
<ul>
<li>
<a href="#" id="submenu_a_2_1">二級(jí)菜單一</a>
<div class="submenu" id="submenu_2_1">
<ul>
<li><a href="#" id="submenu_a_2_1_1">三級(jí)菜單一</a></li>
<li><a href="#" id="submenu_a_2_1_2">三級(jí)菜單二</a></li>
<li>
<a href="#" id="submenu_a_2_1_3">三級(jí)菜單三</a>
<div class="submenu" id="submenu_2_1_3">
<ul>
<li><a href="#" id="submenu_a_2_1_3_1">四級(jí)菜單一</a></li>
<li><a href="#" id="submenu_a_2_1_3_2">四級(jí)菜單二</a></li>
<li><a href="#" id="submenu_a_2_1_3_3">四級(jí)菜單三</a></li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li><a href="#" id="submenu_a_2_2">二級(jí)菜單二</a></li>
<li><a href="#" id="submenu_a_2_3">二級(jí)菜單三</a></li>
<li><a href="#" id="submenu_a_2_4">二級(jí)菜單四</a></li>
<li><a href="#" id="submenu_a_2_5">二級(jí)菜單五</a></li>
</ul>
</div>
</li>
<li>
<a href="#" id="treemenu_a_3">一級(jí)菜單三</a>
<div class="submenu" id="submenu_3">
<ul>
<li><a href="#" id="submenu_a_3_1">二級(jí)菜單一</a></li>
<li><a href="#" id="submenu_a_3_2">二級(jí)菜單二</a></li>
<li><a href="#" id="submenu_a_3_3">二級(jí)菜單三</a></li>
<li><a href="#" id="submenu_a_3_4">二級(jí)菜單四</a></li>
<li><a href="#" id="submenu_a_3_5">二級(jí)菜單五</a></li>
</ul>
</div>
</li>
</ul>
</div>

讀取cookie工具類:

//cookie工具類
var cookieTool = {
//讀取cookie
getCookie: 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;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) {
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
},
//設(shè)置cookie
setCookie: function(c_name, value, expiredays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays); //設(shè)置日期
document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
},
//刪除cookie
delCookie: function(c_name) {
var exdate = new Date();
exdate.setDate(exdate.getDate() - 1); //昨天日期
document.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) { //是否有子菜單
var flag = $(this).next('.submenu:hidden').length > 0 ? true : false;
if (flag) {
$submenu.show();
} else {
$submenu.hide();
}
var display = flag ? 'block' : 'none';
cookieTool.setCookie(id, display, 10);
} else {
cookieTool.setCookie(id, id, 10);
var curId = cookieTool.getCookie(id);
$('.treemenu').find('.on').removeClass('on').addClass('off');
$('#' + curId).addClass('on');
$('.treemenu a[class="off"]').each(function() { 
cookieTool.delCookie($(this).attr('id')); //刪除其他已選擇選項(xiàng)cookie
});
}
});

頁(yè)面加載時(shí)重新設(shè)置菜單

//頁(yè)面加載讀取cookies
$('.treemenu a').each(function() {
showMenu($(this).attr('id'));
});

//讀取cookie顯示菜單
function showMenu(id) {
var $this = $('#' + id);
var cookie = cookieTool.getCookie(id);
if (cookie) {
if ($this.next('.submenu').length > 0) {
$this.next('.submenu').css('display', cookie);
} else {
$('#' + cookie).addClass('on');
}
}
}

完整DEMO:

【JavaScript】刷新不變化樹形菜單(多級(jí)菜單).zip

注意:chrome本地控制臺(tái)無(wú)法讀取cookie,需要在firefox/IE或者服務(wù)器環(huán)境下測(cè)試

相關(guān)文章

  • JS中進(jìn)行字符串替換的方法

    JS中進(jìn)行字符串替換的方法

    replace() 方法用于在字符串中用一些字符替換另一些字符,或替換一個(gè)與正則表達(dá)式匹配的子串,這篇文章主要介紹了js中進(jìn)行字符串替換的方法,需要的朋友可以參考下
    2024-01-01
  • 詳解JavaScript進(jìn)度管理

    詳解JavaScript進(jìn)度管理

    這篇文章主要介紹了JavaScript進(jìn)度管理,對(duì)進(jìn)度管理感興趣的同學(xué),可以參考下
    2021-04-04
  • JavaScript實(shí)現(xiàn)動(dòng)態(tài)刪除列表框值的方法

    JavaScript實(shí)現(xiàn)動(dòng)態(tài)刪除列表框值的方法

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)動(dòng)態(tài)刪除列表框值的方法,涉及javascript針對(duì)select列表框的遍歷與刪除操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • 一文帶你搞懂JavaScript中的原型和原型鏈

    一文帶你搞懂JavaScript中的原型和原型鏈

    JavaScript是基于原型繼承的語(yǔ)言,每個(gè)對(duì)象都有一個(gè)原型(prototype),本文則是重點(diǎn)對(duì)prototype相關(guān)知識(shí)點(diǎn)做拆解和梳理,感興趣的可以了解下
    2023-08-08
  • webpack4 optimization使用總結(jié)

    webpack4 optimization使用總結(jié)

    這篇文章主要介紹了webpack4 optimization使用總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 如何為Yarn配置國(guó)內(nèi)源的詳細(xì)教程

    如何為Yarn配置國(guó)內(nèi)源的詳細(xì)教程

    在使用 Yarn 進(jìn)行項(xiàng)目開發(fā)時(shí),由于網(wǎng)絡(luò)原因,直接使用官方源可能會(huì)導(dǎo)致下載速度慢或連接失敗,配置國(guó)內(nèi)源可以顯著提高包的下載速度和穩(wěn)定性,本文將詳細(xì)介紹如何為 Yarn 配置國(guó)內(nèi)源,需要的朋友可以參考下
    2025-04-04
  • js實(shí)現(xiàn)星星打分效果

    js實(shí)現(xiàn)星星打分效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)星星打分效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • JavaScript 數(shù)組展平方法: flat() 和 flatMap()詳解

    JavaScript 數(shù)組展平方法: flat() 和 flatMap()詳解

    從 ES2019 中開始引入了一種扁平化數(shù)組的新方法,可以展平任何深度的數(shù)組,這篇文章主要介紹了JavaScript 數(shù)組展平方法: flat() 和 flatMap()詳解,需要的朋友可以參考下
    2023-06-06
  • JavaScript 動(dòng)態(tài)生成方法的例子

    JavaScript 動(dòng)態(tài)生成方法的例子

    動(dòng)態(tài)生成方法的例子,這些方法在新對(duì)象實(shí)例化的時(shí)候創(chuàng)建
    2009-07-07
  • three.js簡(jiǎn)單實(shí)現(xiàn)類似七圣召喚的擲骰子

    three.js簡(jiǎn)單實(shí)現(xiàn)類似七圣召喚的擲骰子

    這篇文章主要為大家介紹了three.js簡(jiǎn)單實(shí)現(xiàn)類似七圣召喚的擲骰子示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01

最新評(píng)論

瑞金市| 广饶县| 安康市| 定兴县| 溆浦县| 孙吴县| 邳州市| 乡城县| 祥云县| 临桂县| 龙海市| 西安市| 钦州市| 平顺县| 平果县| 诸暨市| 阳原县| 治多县| 麻城市| 察隅县| 杭锦后旗| 石阡县| 闸北区| 长春市| 贵州省| 陈巴尔虎旗| 蓝田县| 东丽区| 霍山县| 台东县| 新化县| 洛隆县| 乐都县| 鄂托克前旗| 喜德县| 商洛市| 巍山| 新竹市| 科技| 镇沅| 河东区|