2016-04-13 13 views
1

私は単純なタブナビゲーションシステムをセットアップしました。私はそれをよりクリーンでよりモジュラー化するようにコーディングしたかったのです。jQuery slide 1つのdivでしか動作しないトグル

私はJSFiddleを試してみました。

HTML:

<div class="col-4"> 
    <nav> 
     <ul> 
      <li id="tab_entry"  value="0" class="navActive myPanelNavLi"><span class="fa fa-plus-circle"></span> Entry</li> 
      <li id="tab_search"  value="1" class="myPanelNavLi">Search</li> 
     </ul> 
    </nav> 

<div class="panelTab_0 myPanelActive lightShadow darkBg roundedBottom"> 
STORAGE ENTRY 
</div> 

<div class="panelTab_1 myPanelActive lightShadow darkBg roundedBottom"> 
STORAGE ENTRY 
</div> 

JS:

//myPanel sliders 
$(".myPanelNavLi").click(function(){ 

    var choiceValue = $(this).attr("value"); 
    var choice = '.panelTab_' + choiceValue; 
    console.log(choice); 

    $(this).parent().parent().next(choice).slideToggle(300); 

}); 

基本的に、あなたはそれは、適切に

をトグルをスライドさせ、 "エントリ" をクリックしてくださいしかし、あなたは検索]をクリックしたときに、それがスライドしません。これは私を夢中にさせている。どんな助けでも大歓迎です。

https://jsfiddle.net/g44xt4m8/3/

ありがとうございます。 ニック

+0

してください。1.使用スタック交換フィドル、2削除すべての無関係なコード、および3整頓あなたの形式を試してみてください。あなたがそうしたら、私はあなたを助けることを約束します:) – apscience

+0

私が投稿したコードは、私がそれを得ることができるほど清潔です。あなたがマイナーなことに不平を言うなら、私はむしろ他の誰かを待っています。乾杯:) – Vranvs

答えて

2

https://jsfiddle.net/g44xt4m8/5/

$(".myPanelNavLi").click(function(){ 

     var choiceValue = $(this).attr("value"); 
     var choice = '.panelTab_' + choiceValue; 

     $(choice).slideToggle(300); 


    }); 
+0

これは動作しますが、それは私がそれが欲しいもののために動作しません。私はこれらのパネルがたくさんあるページを作っているので、$( "x")でドキュメント全体を検索するのではなく、正しいパネルを内部的に見つける必要があります。私のコードで、私が現在セットアップしているように動作していない理由を、あなたのエラーコードで確認できますか? – Vranvs

+1

修正済み。 .next()を.siblings()に変更しました。 – Vranvs

関連する問題