2013-02-15 22 views
6

目標は、サイトが676px未満のときにタブからアコーディオンスタイルの折りたたみに切り替えることです。私たちはBootstrapを使用しています。タブから折り畳んで反応して反応する

ul.nav-tabsとa.accordtion-toggleをそれぞれcssで非表示にします。タブはここでは機能しますが、a.accordion-toggleは機能しません。何か案は?

<ul class="nav nav-tabs" id="myTab" data-tabs="tabs"> 
    <li class="active"><a href="#panel1" data-toggle="tab">Panel 1</a></li>  
    <li class="active"><a href="#panel2" data-toggle="tab">Panel 2</a></li> 
</ul> 

<a class="accordion-toggle" data-toggle="collapse" data-target="#panel>Panel 1</a> 
    <div class="tab-pane collapse" id="panel1"> 
Panel 1 Content 
    </div> 
<a class="accordion-toggle" data-toggle="collapse" data-target="#pane2>Panel 2</a> 
    <div class="tab-pane collapse" id="panel2"> 
Panel 2 Content 
    </div> 

<script> 
    jQuery(document).ready(function ($) { 
    if (document.documentElement.clientWidth < 767) { 
     $('#myTab a').click(function (e) { 
      e.preventDefault(); 
     } 

     $(".collapse").collapse(); 
    }    
    }); 
</script> 
+0

貼り付けコードが属性に引用符が欠落しており、JSは何もしない - ここで

は、私は小さなプラグインに抽出されたソースです。 '.accordion-toggle [data-target]'の1つも不完全です。 – Sherbrow

+0

タブプラグインの代わりに '.nav-tabs'で折り畳みプラグインを使うことを考えましたか? – Sherbrow

答えて

1

私はそれは、両方のプラグインが一緒にを動作させるために複雑なようだthis jsfiddleにビットを試みたが。

このプラグインのクラスとJSのみを使用してプラグインの1つを選択し、独自のトリガーを実装してデフォルトの動作を完了させる方がよい場合があります。


私は崩壊プラグインのアコーディオンの動作は正常に動作し.accordion-group > .collapse.in構造を必要だと思います - あなたはあなた自身のJSを使用しない場合。

0

1つのdiv内のタブトリガーを(上記のリストの代わりに)タブ付きコンテンツで入れ子にし、cssを使用してフルスクリーン表示のタブのように配置しました。理想的ではありませんが、データトグルとデータターゲットが配置されている限り動作します。

0

もしそれが役に立つかどうかわかりませんが、window.onresize = function(){}を使用して、メインコンテナの幅を調べることができます。ある幅よりも小さい場合は、jsを使用してコンテンツを置き換えることができます。

+0

これはブートストラップの設計とは対照的です。 より多くのブラウザでよりよく動作するように、色のサイズと@mediaはドキュメントでは非常に好まれています。 – GeorgeWL

11

私のケースでは、タブのコンテンツを隠しアコーディオンにコピーするだけでうまくいきました。 Bootstrap Tab Collapse