2015-02-05 2 views
0

У меня есть аккордеон Bootstrap с около 10 панелями. У меня есть флажок, который необходимо выполнить следующие действия:Bootstrap Accordion - Добавление и удаление родителя

бесконтрольно - все панели закрываются и только одна панель отображается в то время (то есть: один из родителей определяется так, что, когда одна панель открывается другая закрывает)

проверено - все панели открываются и действуют независимо (то есть: родитель не определен)

В документации не рассматривается такой сценарий, и я не уверен, как это осуществить. Я попытался следующие (на примере гармошки, показанный в документации Bootstrap как мой HTML-код) ...

код, который выполняется, когда флажок получает бесконтрольно:

$(".collapse").collapse({ parent: "#accordion", toggle: false }, "hide"); 

Код прогоны когда флажок проверяется:

$(".collapse").collapse({ toggle: false }, "show"); 

Однако это, похоже, не работает вообще. Например, при запуске второго кода для отображения всех панелей ничего не меняется. Кажется, у меня что-то не хватает.

ответ

1

Вы можете сделать это, переключив атрибут data-parent на a, который разрушает/расширяется с помощью jQuery. Добавить что-то вроде этого (предполагая, что идентификатор вашего флажка allowmulti):

$('#allowmulti').click(function() { 
    if(this.checked) { 
    $('#accordion a').removeAttr('data-parent'); 
    } else { 
    $('#accordion a').attr('data-parent', '#accordion'); 
    } 
}); 

Пример Bootply here

+0

К сожалению, это не похоже на работу 100% ... попробуйте следующее на вашем примере Bootply ... нажмите на все три панели (чтобы показать их), затем нажмите галочку ... вы заметите, что хотя атрибут data-parent был удален, панели по-прежнему ведут себя так, как будто родительский атрибут не был удален. –