Подскажите JS. Запомнить раскрыт ли аккордеон.

Аватар пользователя VasyOK

Поместил раскрыты фильтр в аккордеон таким вот нехитрым способом:

(function ($) {
 Drupal.behaviors.cool_themeTheme = {
  attach: function(context, settings) {
    $(".cool-filter .bef-select-as-checkboxes-fieldset").accordion({  
      active: false,
      collapsible: true,
      heightStyle: "content",      
      header: ".panel-heading"
    });      
  }
 };
 
})(jQuery);

Результат тут: http://bootstrap.liberty.vps-private.net/test
accordfilter
Проблема. Когда нажимаю на любое значение фильтра - аккордеон закрывается. Как сделать чтобы не закрывался?

Через куки? Если да - пробовал этими способами:
http://stackoverflow.com/questions/27142455/jquery-remember-open-accordion-state
http://stackoverflow.com/questions/14073260/setting-a-cookie-to-remember-accordion-state
http://stackoverflow.com/questions/11231436/jquery-ui-accordion-menu-saving-menu-state-even-after-refresh
не получилось :(

Как думаете, есть сверху ссылка на рецепт? Или вообще по другому делать?

ВложениеРазмер
Иконка изображения accordfilter.png2.23 КБ
0 Спасибо

Комментарии

Аватар пользователя BatKor
BatKor 8 месяцев назад

Наверно лучше событие ставить на тег legend
и вызывать $(this).parent().accordion... помоему

0 Спасибо
Это сообщение находится в тёмной материи. Вы можете изменить настройки просмотра тёмной материи в личном кабинете.
0 Спасибо
Аватар пользователя BatKor
BatKor 8 месяцев назад

Тогда у тега legend убрать паддинг и сделать у спана с классами panel-title fieldset-legend
типа

(function ($) {
 Drupal.behaviors.cool_themeTheme = {
  attach: function(context, settings) {
    $(".cool-filter .bef-select-as-checkboxes-fieldset ").on('click','span.panel-title.fieldset-legend', function(){
$(this).parent().parent().accordion({  
      active: false,
      collapsible: true,
      heightStyle: "content",      
      header: ".panel-heading"
    });    
  }
 };
 
})(jQuery);

типа такого

0 Спасибо
Аватар пользователя BatKor
BatKor 8 месяцев назад

со скобками могут быть ошибки

0 Спасибо
Аватар пользователя VasyOK
VasyOK 8 месяцев назад

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

0 Спасибо
Аватар пользователя VasyOK
VasyOK 8 месяцев назад

Хулиган (твой логин антимат фильтр не пускает), на пример подобного можешь ссылку кинуть? Не понимаю я на пальцах.

0 Спасибо
Аватар пользователя BatKor
BatKor 8 месяцев назад

Он имеет ввиду, что создавать глобальную переменную фиксирующую состояние аккордиона не правильно(Мега-костыль). Предлагает как я понимаю, что бы вы не обновляли форму с аккордионом при Ajax запросе.

0 Спасибо
Аватар пользователя Studio VIZA
Studio VIZA 8 месяцев назад
VasyOK написал:
Хулиган (твой логин антимат фильтр не пускает)

Ху лиGUN

0 Спасибо
Аватар пользователя gun_dose
gun_dose 8 месяцев назад 1

Надо при выборе опции родителю давать класс, который будет обозначать раскрытость по умолчанию.