Подскажите 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 1 год назад

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

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

Тогда у тега 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 1 год назад

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

Аватар пользователя VasyOK
VasyOK 1 год назад

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

Аватар пользователя VasyOK
VasyOK 1 год назад

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

Аватар пользователя BatKor
BatKor 1 год назад

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

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

Ху лиGUN

Аватар пользователя gun_dose
gun_dose 1 год назад
1

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