2016-02-11 4 views
0

Вот меню переключателей, которое отлично работает: Если я нажму на ссылку (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 Благодаря

ответ

0

Это та вещь, я хотел бы использовать localStorage для. Просто установите какой-то флаг в localStorage, когда состояние изменится и извлечет его, когда загружается ваша страница.

Я должен добавить, что использование классов css для представления состояния представления не является хорошей идеей и укусит вас, если ваш пользовательский интерфейс будет намного сложнее.

1

Вы должны использовать файлы 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"); 
} 

Примечание: Здесь я использовал this JavaScript API (Jquery Plugin).

+0

Любой код, который имеет форму 'if (condition) {true} else {false}', может быть переписан как просто 'condition' - здесь ваш код может быть просто' Cookies.set ("menuOutB", out) 'where" out "- это логическая переменная, функция, возвращающая логическое значение, или условие проверки, которое вычисляется как логическое. Пример: 'Cookies.set (" menuOutB ", $ (" menu "). HasClass (" open "))' –

Смежные вопросы