我尝试使用Bootstrap collapse插件的toggle函数编程。当我点击accordion-heading中的链接时,我设法切换了一个div,但它只工作了一次,也就是说我不能再次点击隐藏div。
下面是我的代码:
<div id="accordion" class="accordion">
<div class="accordion-group">
<div class="accordion-heading">
<a id="program${bean.id}" data-parent="#accordion"
class="accordion-toggle">
...
</a>
</div>
<div id="collapse${bean.id}" class="accordion-body collapse">
<div class="accordion-inner">
...
</div>
</div>
</div>
稍后在JSP中:
$.each($('#accordion a.accordion-toggle'), function(i, link){
$(link).on('click',
function(){
// ...
$('#collapse' + id_of_a_bean).collapse({
toggle : true,
parent : '#accordion'
});
// ...
}
)
});
我错过什么了吗?
3条答案
按热度按时间vs91vp4v1#
我猜很多人都遇到过这种情况。
当你调用
collapse
函数(FYI或任何引导函数)时,如果你传递了一个对象,这意味着你启动了折叠。toggle
选项只在调用 *(doc)时切换一次。您必须使用参数呼叫一次,然后只使用动作呼叫,做为字串。
现场演示:http://jsfiddle.net/Sherbrow/uycBa/
准确地说,你只能调用一次init进程,因为如果你已经在同一个元素上调用过它,它就会中止,这就是为什么它只运行了一次。
vx6bjr1n2#
类似的问题,我只是检查元素是否可见:
7vux5j2d3#
我发现,只需调用两次collapse,一次使用parent,一次不使用parent,就可以很好地实现这个目的--由于层次结构的原因,这种解决方案在我的解决方案中更可取。