我在一个新站点上使用 Twitter Bootstrap,我需要在切换器中添加一个加号/减号。该部分包含在 EE 频道条目标签中,以循环遍历整个职业生涯并创建手风琴列表。我的手风琴代码如下:
{if count == "1"}
<div class="accordion" id="my_accordion">
{/if}
<div class="accordion-group">
<div class="accordion-heading">
<h2><a class="accordion-toggle" data-parent="#my_accordion" data-toggle="collapse" href="#collapse{count}">{title} <span class="pull-right">+</span></a></h2>
</div>
<div class="accordion-body collapse" id="collapse{count}">
<div class="accordion-inner">
{careers-summary}
<p><a href="{page_uri}" class="btn btn-small">Learn More</a></p>
</div>
</div>
</div>
{if count == total_results}
</div>
{/if}
我开始编写但似乎不想工作的 javascript 如下(请参阅下面的新代码):
我要做的就是在手风琴打开/关闭时将加号变为减号,反之亦然。我越看我开始的 javascript,即使它确实按照我的意愿更改了文本,但当我单击另一个手风琴切换器时,它不一定会这样做。让它工作并让它足够灵活以在多个手风琴切换器上工作的最佳方法是什么?
更新我对 javascript 做了一些更改,并使用了 Twitter Bootstrap 提供的事件。我还删除了 data-parent 属性,因此它们就像可折叠的切换器,而不是手风琴。新代码如下:
$('.accordion').on('hide', function () {
$('.accordion-toggle span').html('+');
})
$('.accordion').on('show', function () {
$('.accordion-toggle span').html('-');
})
这实际上会更改文本,但会更改每个切换器的加号/减号,而不仅仅是您单击的切换器。我可以为每个跨度添加一个自定义类,但我不确定如何在 javascript 中定位它,而不必为每个切换创建一个 show.hide 函数。这似乎效率低下,必须有一种更简单的方法来做到这一点。