1

私はjQueryを初めて使用し、twitterブートストラップアコーディオンプラグインの一般的な展開/折りたたみボタンを設定しようとしています。私のコードには、展開/折りたたみしたい配列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

clickアコーディオンのどのクラスも変更せず、適切な見出しでトリガーして対話する方がよいでしょう:

例 :

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

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

デモ: http://jsfiddle.net/RB7cT/

于 2013-01-06T17:11:18.977 に答える
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 に答える