簡體   English   中英

重新加載頁面后保持菜單切換狀態

[英]Keep menu toggle state after page reload

這是一個非常有效的切換菜單:如果單擊鏈接(下面的HTML代碼),則菜單會折疊。 但是我想要用戶是否重新加載頁面以保持菜單狀態(展開/折疊)。

  $('#menu_toggle').click(function () { if ($('body').hasClass('nav-md')) { $('body').removeClass('nav-md'); $('body').addClass('nav-sm'); $('.left_col').removeClass('scroll-view'); $('.left_col').removeAttr('style'); $('.sidebar-footer').hide(); if ($('#sidebar-menu li').hasClass('active')) { $('#sidebar-menu li.active').addClass('active-sm'); $('#sidebar-menu li.active').removeClass('active'); } } else { $('body').removeClass('nav-sm'); $('body').addClass('nav-md'); $('.sidebar-footer').show(); if ($('#sidebar-menu li').hasClass('active-sm')) { $('#sidebar-menu li.active-sm').addClass('active'); $('#sidebar-menu li.active-sm').removeClass('active-sm'); } } }); 

 <a id="menu_toggle"><i class="fa fa-bars"></i></a> 

如何記住狀態? 完整項目: http : //demo.kimlabs.com/gentelella/production/index.html謝謝

您應該使用cookie來存儲布爾值,例如菜單是否已打開或關閉。 然后,在加載頁面時,它將檢查是否存儲了任何cookie,並且默認情況下使用這些變量。

例如:

頁面加載:

var menuOutBoolean = Cookies.get("menuOutB") || false;
if (menuOutBoolean == true || menuOutBoolean == "true"){
    //put the menu out
}
else {
    //put menu in
}

更改時:

if (/*out*/){
    Cookies.set("menuOutB","true");
}
else{
    Cookies.set("menuOutB","false");
}

注意:在這里,我使用了此JavaScript API(jQuery插件)

這就是我要使用localStorage的那種東西。 只需在狀態更改時在localStorage中設置某種標志,並在頁面加載時獲取它即可。

我應該補充一點,使用css類表示視圖狀態不是一個好主意,如果您的UI變得更加復雜,它會咬您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM