【发布时间】:2017-01-16 01:11:05
【问题描述】:
我在我的网站上实现了以下 Bootstrap 手风琴/可折叠表单。请看这个小提琴:https://jsfiddle.net/eswv56ha/
这也是我的 HTML 标记:
<div class="panel-group" id="checkout-accordion">
<div class="panel panel-default checkout-panel" id="panel-billing">
<div class="panel-heading checkout-heading" data-toggle="collapse" data-parent="#checkout-accordion" href="#collapse-billing">
<h4 class="panel-title checkout-acc-title"> <a class="accordion-checkout" data-toggle="collapse" data-parent="#checkout-accordion" href="#collapse-billing">Delivery Address <i class="checkout-accordion-icon"></i></a> </h4>
</div>
<div id="collapse-billing" class="panel-collapse details collapse in">
<div class="panel-body checkout-inside">
Content First
<button id="toggle-delivery" type="button" class="btn-checkout" data-toggle="collapse" data-parent="#checkout-accordion" href="#collapse-delivery">Deliver to This Address</button>
</div>
</div>
</div>
<div class="panel panel-default checkout-panel" id="panel-shipping">
<div class="panel-heading checkout-heading" data-toggle="collapse" data-parent="#checkout-accordion" href="#collapse-delivery">
<h4 class="panel-title checkout-acc-title"> <a class="accordion-checkout collapsed" data-toggle="collapse" data-parent="#checkout-accordion" href="#collapse-delivery">Delivery Options <i class="checkout-accordion-icon"></i></a> </h4>
</div>
<div id="collapse-delivery" class="panel-collapse details collapse">
<div class="panel-body checkout-inside">
Content Second
<button id="toggle-payment" type="button" class="btn-checkout" data-toggle="collapse" data-parent="#checkout-accordion" href="#collapse-payment">Select Delivery Option</button>
</div>
</div>
</div>
<div class="panel panel-default checkout-panel" id="panel-payment">
<div class="panel-heading checkout-heading" data-toggle="collapse" data-parent="#checkout-accordion" href="#collapse-payment">
<h4 class="panel-title checkout-acc-title"> <a class="accordion-checkout collapsed" data-toggle="collapse" data-parent="#checkout-accordion" href="#collapse-payment">Payment <i class="checkout-accordion-icon"></i></a> </h4>
</div>
<div id="collapse-payment" class="panel-collapse details collapse">
<div class="panel-body checkout-inside">
Content Third
</div>
</div>
</div>
<div>
</div>
我为面板主体使用了虚拟内容,因为内容是使用 PHP 动态生成的。手风琴取代了我的 WooCommerce 网站上的结帐表格。到目前为止,它功能齐全并且行为符合预期,但是,我想更进一步,在切换第一个面板(交货地址)时以某种方式禁用第二个和第三个面板(交货选项和付款)。然后,当用户单击“交付到此地址”按钮时,将启用第二个面板。此时,第一个面板(送货地址)将折叠但仍启用/可切换,第二个面板(交付选项)将被切换,第三个面板(付款)应禁用/不可切换。当用户单击“选择交付选项”时,应启用最后/第三个面板(付款)。第一个(送货地址)和第二个(送货选项)面板应该折叠但处于活动状态,第三个(付款)应该启用并切换。
一旦第三个面板被切换/激活/启用,其余面板将被折叠,但仍可访问 - 即,如果用户想要返回她的帐单信息并更改地址或选择不同的交付选项。
当它们启用/激活时,叠加层将逐渐被移除。我怎样才能做到这一点?
【问题讨论】:
-
请注意,您的 HTML 中有重复的代码。即
data-*和href属性都在panel-heading和panel-title上。此外,在一致性方面,您有一个名为panel-shipping的面板,其可折叠内容名为collapse-delivery。 -
@Cooleronie 是的,我知道我在
panel-heading和panel-title上都有data-和href属性。我希望整个标题都是可点击的,否则会让客户体验很差。他们应该能够通过单击标题上的任意位置来切换手风琴面板,而不仅仅是panel-title。谢谢! -
然后只删除
panel-title中的那些以及随之而来的锚。 -
@Cooleronie 刚刚做了,效果很好。谢谢!但是现在我的箭头不是因为当面板切换时折叠的类没有附加到面板#2 和#3 的面板标题。您的 Plunker 也会发生同样的事情。有什么想法吗?
标签: javascript jquery twitter-bootstrap