Подскажите 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-accordi...
http://stackoverflow.com/questions/14073260/setting-a-cookie-to-remember...
http://stackoverflow.com/questions/11231436/jquery-ui-accordion-menu-sav...
не получилось :(

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

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

Комментарии

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

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

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

Тогда у тега 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);

типа такого

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

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

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

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

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

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

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

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

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

Ху лиGUN

Аватар пользователя gun_dose
gun_dose 10 месяцев назад
1

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