2014-11-13 2 views
4

У меня есть ботстрап-аккордеон с флажком внутри каждой панели аккордеона. Когда я устанавливаю флажок внутри панели, ее родитель должен свернуть и открыть следующую панель.Как свернуть бутстрап-аккордеон, щелкнув по нему флажок

Я использую jQuery icheck плагин для стилизации флажков. Итак, что я могу сделать, чтобы свести аккордеонные панели? FIDDLE

$('.item1').on('ifChecked', function(event){ 

}); 

ответ

2

Если я вас правильно понял, вы можете что-то вроде этого:

Обновленный код:

// Toggle 
$('.item1').on('ifChecked', function(event){ 
    $("#collapseOne").collapse("hide"); 
}); 
$('.item2').on('ifChecked', function(event){ 
    $("#collapseTwo").collapse("hide"); 
}); 
$('.item3').on('ifChecked', function(event){ 
    $("#collapseThree").collapse("hide"); 
}); 

$("#collapseOne").on("hidden.bs.collapse", function(e){ 
    $("#collapseTwo").collapse("show"); 
}); 
$("#collapseTwo").on("hidden.bs.collapse", function(e){ 
    $("#collapseThree").collapse("show"); 
}); 
$("#collapseThree").on("hidden.bs.collapse", function(e){ 
    $("#collapseOne").collapse("show"); 
}); 

Первая скрипка здесь: http://jsfiddle.net/sap1ruq2/1/

ОБНОВЛЕНО скрипку здесь: http://jsfiddle.net/bstjmdLp/

Позвольте мне знать, если это то, что вам нужно!

+0

Вы правы. Но возможно ли сделать Collapse с событиями, указанными в документации для начальной загрузки? \t shown.bs.collapse \t \t hidden.bs.collapse http://getbootstrap.com/javascript/#collapse – Raihan

+1

@Raihan Я создал новую скрипку. Надеюсь, это то, что вы искали: http://jsfiddle.net/bstjmdLp/ –

+1

@ Raihan Я также обновил свой ответ выше ... –

1

Вы могли бы сделать что-то подобное в вашем случае

$('input').on('ifChecked', function(event){ 
    $(this).parents('.panel').first().next().find('.panel-heading a').click(); 
}); 

Обновлены огурчик: http://jsfiddle.net/Lq07ysbq/11/

+0

На самом деле ваше решение было очень стандартным. – Raihan

1

В идеале вы должны использовать JS API, предоставляемый подключаемым модулем. В этом случае используйте опции 'hide' и 'show' (http://getbootstrap.com/javascript/#collapse). Я обновил свой скрипку здесь: http://jsfiddle.net/catalyst156/Lq07ysbq/13/

$('.item1').on('ifChecked', function(event){ 
    $(this).parents('.panel-collapse').collapse('hide'); 
    $('#collapseTwo').collapse('show'); 
}); 

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

Смежные вопросы