Twitter Bootstrap 3 сбрасывается при установке флажка
Аккордеон должен свернуться при установленном флажке. И должен быть скрыт, если он не снят.
Вот код: http://jsfiddle.net/UwL5L/2/
Почему он не проверяет?
<div class="panel-group driving-license-settings" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
<input type="checkbox" value=""> I have Driver License
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body">
<div class="driving-license-kind">
<div class="checkbox">
<input type="checkbox" value="">A
</div>
<div class="checkbox">
<input type="checkbox" value="">B
</div>
<div class="checkbox">
<input type="checkbox" value="">C
</div>
<div class="checkbox">
<input type="checkbox" value="">D
</div>
<div class="checkbox">
<input type="checkbox" value="">E
</div>
</div>
</div>
</div>
</div>
</div>
Ответы
Ответ 1
ОБНОВЛЕНИЕ: Ниже есть лучший ответ... Здесь → *
JS (Fiddle: http://jsfiddle.net/h44PJ/):
$('.collapse').collapse();
// Don't collapse on checkbox click
$('.panel-heading h4 a input[type=checkbox]').on('click', function(e) {
e.stopPropagation();
});
// Cancel show event if not checked
$('#collapseOne').on('show.bs.collapse', function(e) {
if(!$('.panel-heading h4 a input[type=checkbox]').is(':checked'))
{
return false;
}
});
ОБНОВЛЕНИЕ (Fiddle: http://jsfiddle.net/h44PJ/567/):
$('.collapse').collapse();
$('.panel-heading h4 a input[type=checkbox]').on('click', function(e) {
e.stopPropagation();
$(this).parent().trigger('click'); // <--- HERE
});
$('#collapseOne').on('show.bs.collapse', function(e) {
if(!$('.panel-heading h4 a input[type=checkbox]').is(':checked'))
{
return false;
}
});
Ответ 2
Здесь мое решение работает, добавляя флажок-ярлык к флажку вместо гиперссылки:
<div class="checkbox">
<label data-toggle="collapse" data-target="#collapseOne">
<input type="checkbox"/> I have Driver License
</label>
</div>
http://jsfiddle.net/L0h3s7uf/1/
Ответ 3
Посмотрите на это.
Я сделал это и отлично работал.
<script>
$(function () {
if($('#id_checkbox').prop('checked'))
{
$('#id_collapse').collapse();
}
});
</script>
Ответ 4
Вам даже не нужно инициализировать .collapse
. Просто измените заголовок на:
<h4 class="panel-title">
<input type="checkbox" value="" data-toggle="collapse" data-target="#collapseOne" /> I have Driver License
</h4>
Ответ 5
Я разработал причудливый флажок переключателя для коллапса аккордеонного контента.
<h4 class="panel-title">
<label data-toggle="collapse" data-target="#collapseOne" class="control-toggle">
<input type="checkbox" />
<div class="toggle-button"></div>
</label>
I have Driver License
</h4>
Надеюсь вам, ребята, нравится это :-)
Скриптовая ссылка: http://jsfiddle.net/ajay1008/fkrehhna/
Ответ 6
У меня была та же проблема, и я нашел ответ на это видео:
http://www.lynda.com/Bootstrap-tutorials/Adding-check-box-using-collapse-enhance-usability/161098/176537-4.html
Я надеюсь, что это помогает!
Я использую его сейчас, чтобы свернуть полный div ниже флажка, очень простой.
Единственная проблема в том, что если вы дважды щелкаете по ней, это становится беспорядочным, но обычно этого не происходит.
Ответ 7
<input type="checkbox" data-toggle="collapse" data-target="#demo" uncheck/>I have Driver License
<div id="demo" class="collapse">
<label>What you want collapse</label>
</div>