Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const CHECKED_FILTER_CLASS='btn-warning'; //имя класса, наличие которого у кнопки определяет нажата она или нет / нужно её учитывать или нет
- const SESSION_STORAGE_ACTIVE_FILTERS_NAME='active_filters'; //имя ключа в сессионном хранилище js с json массивом нажатых кнопок фильтров
- let active_filters=load_from_session(SESSION_STORAGE_ACTIVE_FILTERS_NAME); //Получаем данные из сессии страницы о нажатых кнопках
- //Если есть данные, то восстанавливаем кнопки и перезапускаем фильтр.
- if (active_filters.length>0){
- restore_pushed_filter_buttons(active_filters);
- //apply_filter();
- }
- /**
- * Делает указанные кнопки нажатыми
- *
- * @param buttons - массив с id кнопок
- * @returns {boolean}
- */
- function restore_pushed_filter_buttons(buttons) {
- for (i = buttons.length - 1; i >= 0; i--) {
- jQuery('#'+buttons[i]).addClass(CHECKED_FILTER_CLASS);
- }
- return true;
- }
- /**
- * Сохраняет переданные данные в сессию вкладки
- *
- * @param key - имя ключа, под которым данные будут сохранены в сессии
- * @param data - данные, которые будут сохранены в сессии
- * @returns {boolean}
- */
- function save_in_session(key, data) {
- if (Array.isArray(data)){
- data=JSON.stringify(data);
- }
- sessionStorage.setItem(key, data);
- return true;
- }
- /**
- * Получает из сессии вкладки данные по ключу
- *
- * @param key - имя ключа в сесси
- * @return {boolean}
- */
- function load_from_session(key) {
- let data=sessionStorage.getItem(key);
- if (data) {
- return JSON.parse(data);
- }
- return false;
- }
- function load_from_session(key) {
- let data=sessionStorage.getItem(key);
- save_in_session(SESSION_STORAGE_ACTIVE_FILTERS_NAME, data); //костыль, который не работает.
- if (data) {
- return JSON.parse(data);
- }
- return false;
- }
Add Comment
Please, Sign In to add comment