Свернутый Bootstrap 3 может иметь несколько открытых панелей после программного открытия панели

И чтобы помочь новым читателям, другая причина может быть ошибкой в ​​файле манифеста. Я ошибся android:service как android.service и столкнулся с той же ошибкой ...

17
задан KyleMit 3 December 2013 в 15:26
поделиться

3 ответа

Вы можете создать обработчик для события коллапса show, которое происходит непосредственно перед отображением каких-либо панелей.

Добавьте это, чтобы все остальные открытые панели были закрыты до того, как будет показана выбранная панель:

$('#accordion').on('show.bs.collapse', function () {
    $('#accordion .in').collapse('hide');
});

Bootply demo

Вы можете прочитать больше о collapse события здесь: http://getbootstrap.com/javascript/#collapse

28
ответ дан Zim 3 December 2013 в 15:26
поделиться

Я думаю, что проблема связана с тем, как вы меняете открытую панель. Вместо того, чтобы использовать функцию 'show', вам нужно запустить событие click на соответствующей ссылке панели. Например, с аккордеоном с идентификатором «аккордеон», с тремя панелями, если вы хотите показать 2 панели, используйте:

$("a[href=#accordion-2]").click()

Или любой другой идентификатор, который вы дали своей второй панели (я использую twitterboostrapmvc так идентификаторы панели автоматически генерируются из идентификатора аккордеона).

2
ответ дан ProfNimrod 3 December 2013 в 15:26
поделиться

Для любого, кто использует атрибуты data-target для управления аккордеоном (а не атрибут href), это адаптация ответа ProfNimrod, который щелкает по соответствующему элементу, если цель в данный момент скрыта. (Обратите внимание, что проверка if основывается на настройке аккордеона с классом collapsed, применяемым по умолчанию, что я считаю полезным в любом случае использовать преимущество с помощью css для установки значка шеврона на аккордеонах ) .

var expandAccordion = function() {
    var header = $('[data-target="#accordion-0"]');
    if (header.hasClass('collapsed')) {
        header.click();
    }
}
0
ответ дан Tim 3 December 2013 в 15:26
поделиться