Сброс аккордеона jQuery - PullRequest
3 голосов
/ 21 июля 2009

У меня есть два аккордеона на одной странице. Мне бы хотелось, чтобы при нажатии / активации одного из них другой аккордеон (если он открыт) вернулся в свое сложенное состояние по умолчанию.

Я пытался вручную воссоздать функциональность, но она слишком глючная и в итоге не позволяет мне расширять аккордеоны.

Мой код:

$('#chicago-accordion').accordion({ autoHeight: false, collapsible: true, active:false, });
    $('#chicago-accordion h2').click(function () { 
                $('#ny-accordion .accordion-content').slideUp(); 
                $('#ny-accordion h2').removeClass("ui-state-active"); 
                $('#ny-accordion .accordion-content').removeClass("ui-accordion-content-active"); 
                $('#ny-accordion').accordion({ clearStyle:true, });

         });


$('#ny-accordion').accordion({ autoHeight: false, collapsible: true, active:false, });
    $('#ny-accordion h2').click(function () { 
                $('#chicago-accordion .accordion-content').slideUp();
                $('#chicago-accordion .accordion-content').removeClass("ui-accordion-content-active"); 
                $('#chicago-accordion h2').removeClass("ui-state-active"); 
                $('#chicago-accordion').accordion({ clearStyle:true, });
         });
            });

Ответы [ 3 ]

3 голосов
/ 21 июля 2009

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

var options = {autoHeight: false, collapsible: true, active:false};

$('#ac1').accordion(options);
$('#ac2').accordion(options);

$('#ac1').click(function () {
    $('#ac2').accordion('destroy').accordion(options);
});

$('#ac2').click(function () {
    $('#ac1').accordion('destroy').accordion(options);
});
1 голос
/ 06 июня 2014

Вот что я использую для сброса одного аккордеона:

$ ( 'щ-состояние active.ui-гармошки заголовок ') триггер (' щелчок');.

Чтобы сбросить определенные, вы можете использовать

$ ( 'щ-состояние active.ui-гармошки header.myclass1 ') триггер (' щелчок');.

$ ( 'щ-состояние active.ui-гармошки header.myclass2 ') триггер (' щелчок');.

0 голосов
/ 05 марта 2018

Это сбросит ваш аккордеон без выбранной вкладки. Сброс с помощью addClass / removeClass / attr сделает ваш аккордеон визуально хорошим, но для активации предыдущей выбранной вкладки требуется 2 клика.

$('.yourAccordion').accordion({
    active: false
});

Спасибо

...