2016-04-13 10 views
1

Basit bir sekme navigasyon sistemim var ve daha temiz ve daha modüler olmasını kodlamak istedim.jQuery slideYalnızca bir div üzerinde çalışabilir, başkaları değil, sadece

Bunu denemeniz için bir JSFiddle yaptım.

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: Temelde

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

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

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

}); 

siz "Entry" tıkladığınızda, bu slayt

düzgün değiştirir Ama Ara 'yı zaman, kaymıyorsa . Bu beni deli ediyor. Herhangi bir yardım büyük beğeni topluyor.

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

teşekkür ederiz. Nick

+0

Lütfen 1. kullanımı yığını değişimi kemanlar, 2. kaldırmayı bütün alakasız kodu ve 3. çekidüzen Formatınızı deneyin. Bunu yaparsanız, size yardımcı olacağım :) – apscience

+0

Gönderdiğim kod, alabildiğim kadar temiz. Bu kadar küçük bir şeyden şikayet edeceksen, başkasını beklemeyi tercih ederim. Şerefe :) – Vranvs

cevap

2

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

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

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

     $(choice).slideToggle(300); 


    }); 
+0

Bu işe yaramasa da, ne yapmak istediğimi işe yaramıyor. Bu panellerin çoğuna sahip sayfalar yapıyorum ve bu nedenle, tüm belgeyi $. ("X") ile aramak yerine, doğru paneli dahili olarak bulmaları gerekiyor. Kodumdaki hatayı neden şu anda kurduğum şekilde çalışmadığını görebiliyor musunuz? – Vranvs

+1

Düzeltildi; .next() .siblings() olarak değiştirdim. – Vranvs