У меня есть аккордеон в моем файле .html.slim
с двумя панелями.
Требование:
- Панель 2 не должна открываться, пока пользователь не установит флажок на панели 1.
CoffeeScript
$(document).on 'click', '.panel-heading', (e) ->
panel = $(this).find('a').attr('href')
if panel == '#collapseStepTwo' && !$('#my-checkbox').is(':checked')
e.preventDefault()
e.stopPropagation()
return
$('.panel-collapse.in').collapse('hide')
$(panel).collapse('show');
Проблема:
При нажатии Panel 2
, когда флажок на панели 1 не установленон входит внутрь if condition
и возвращается, но все еще открывается Panel 2
, при этом панель 1 остается открытой.Это означает, что Panel 2
не открывается с $(panel).collapse('show');
, потому что, если элемент управления не возвращается из условия $('.panel-collapse.in').collapse('hide')
, следует закрыть панель 1.