1

我是 jQuery 新手,并尝试为 twitter bootstrap 手风琴插件设置一个通用的展开/折叠按钮。在我的代码中,我有一个要展开/折叠的数组 div 的 id,而我使用的循环可以很好地做到这一点。

但是,如果我通过单击手风琴标题链接手动展开/折叠手风琴,则即使添加了“in”类,相关的 div 也不会再展开或折叠。

这是我的循环:

for(i=0;i<selectedRows.length;i++){
    if($("#"+a).find("div#collapse_"+selectedRows[i]+'.in').length==1)
        $("#"+a).find("div#collapse_"+selectedRows[i]).removeClass("in");
    else
        $("#"+a).find("div#collapse_"+selectedRows[i]).addClass("in");
}

你能看出有什么问题吗?

非常感谢。

编辑:在这里完成的是手风琴的代码

<div id="accordion_4" class="accordion">
<div class="accordion-group">
    <divclass="accordion-heading">
        <a href="#collapse_4" data-parent="#accordion_4" data-toggle="collapse" class="accordion-toggle">
    Details</a>
    </div>
    <div class="accordion-body collapse in" id="collapse_4">
        <div class="accordion-inner">
            Collapsible group
        </div>
    </div>
</div>

这是全局按钮的代码:

<i onclick="toggleExpand('batchForm');" class="btn">Collaps/expand details</i>

对于 toggleExpand 函数,我发送我用来查看哪些行被选中(复选框)的表单的 ID,以便能够通过单击展开或折叠它们。

4

3 回答 3

1

这是一个更简单的答案 - 只需添加...

            $(document).on('click.collapse.data-api', 'button[data-toggle=collapse]', expand);

在 COLLAPSE DATA-API 部分下的第 636 行附近的 bootstrap.js 中。

于 2013-06-27T09:48:25.517 回答
0

最后我使用了这个功能,它可以解决问题,在 34 个复选框上有点慢,但可以工作。但是,如果有人更快地发现了一些东西,我很感兴趣。

    function toggleExpand(a){
        $("#"+a).find("input:checkbox:checked").each(function( index ) {
            $("#"+a+" .accordion .accordion-toggle").eq(index).click();
        });
    }
于 2013-01-07T07:58:42.827 回答
0

你最好不要修改手风琴的任何类,并通过触发click适当的标题与之交互:

例子 :

var $accordLinks=$('.accordion .accordion-toggle');

$('.btn').click(function(){
   $accordLinks.eq( $(this).index()).click()
})

演示:http: //jsfiddle.net/RB7cT/

于 2013-01-06T17:11:18.977 回答