2016-03-28 14 views
1

Ben diğer ul's geçiş yapabilmek için açık kalmasını istediğim bir ul var. Sayfa yüklendiğinde, html şöyle: 3'e bağlantıların hangi bağlı https://jsfiddle.net/q9munmab/Diğer ul geçişleri sırasında bir ul açık tutmak nasıl

<div class="leftNav"> 
    <ul> 
     <li> 
      <div class="active">Test</div> 
      <ul class="navtoggle nonactive"> 
       <li><a></a></li> 
       <li><a></a></li> 
       <li><a class="current"></a></li> 
      </ul> 
      <div>Test 1</div> 
      <ul class="navtoggle nonactive"> 
       <li><a></a></li> 
       <li><a></a></li> 
       <li><a></a></li> 
      </ul> 
      <div>Test 2</div> 
      <ul class="navtoggle nonactive"> 
       <li><a></a></li> 
       <li><a></a></li> 
       <li><a></a></li> 
      </ul> 
     </li> 
    </ul> 
</div> 

Sınıf "aktif" değişir sınıf "geçerli" aslında bulunduğunuz sayfa durumdayken, tıklayın. Birden çok varyasyon varyasyonunu denedim, ancak diğer ikisi arasında geçiş yapabileceğiniz sırada hangisinin (div sınıfı "aktif" ile üçe katlanmış katı) birlikte kaldığını anlayamıyorum. Daha sonra, a öğesine tıkladığınızda sayfa tekrar yüklenecek ve yeniden başlayacaktır.

$('.navContainer li div').click(function() { 
    var $t = $(this); 
    var $next = $t.next('.navtoggle'); 
    var $back = $('.current:visible').closest('ul').prev(); 
    $(this).not('.leftNav li div.active').toggleClass('nonactive'); 
    $('.navtoggle').not($back).slideToggle(); 
}); 
+0

lütfen onaylayın, başlık div'a tıklandığında, sonraki UL'nin gizlenmesi veya görüntülenmesi gerektiği anlamına mı geldi? – ameenulla0007

+0

Gereksiniminiz ne olduğunu anlayamıyor! bu yüzden ihtiyacınıza göre biraz daha ayrıntı ekleyin. – ameenulla0007

+0

Bir div'a tıkladığınızda, bir sonraki ul geçiş yapmalıdır, ancak aktif ul, li a tıklanıncaya kadar açık kalmalıdır. Bu sayfa – Keith

cevap

1

Çalışma Fiddle: https://jsfiddle.net/q9munmab/3/ benim bilgi gereğince

, bu sizin için işe yarayabilir. Çözüm, not seçicisiyle basittir. İşte nasıl kullanıyorsun.

$(".navContainer ul>li>div:not(.active)").click(function() { 
    $(this).next().slideToggle(); 
}); 

GÜNCEL (diğer UL gizlemek)

çalışma keman: kardeşlerinin https://jsfiddle.net/q9munmab/5/

ek ilave $(this).next().slideToggle().siblings("ul").hide();

kullanımı gizlemek için diğer UL hedeflemeyi.

Fiddle çalışan (siz derken diğer bölümlerde; tıklandığında hiçbir şey aktif UL olur)

GÜNCELLEME : https://jsfiddle.net/q9munmab/7/

$(".navContainer ul>li>div.active").next().show().addClass("no-effect"); 
$(".navContainer ul>li>div:not(.active)").click(function() { 
    $(this).next().slideToggle().siblings("ul:not(.no-effect)").hide(); 
}); 

yüküne ilave bir sınıf, aktif yalnızca efektler eklendi div's UL ve Active Div ve UL'de aktiviteyi önlemek için tekrar not seçicinin kullanılması.

+0

ben özür dilerim, bir css eklemedim, bu ul's are display: none; başlamak için, sadece ul ile aşağıdaki alt ile gösterilir li li: geçerli vurgulanan – Keith

+0

Sanırım ben de sana bunu söylemedim, ama bir geçiş açıldığında ve diğerini değiştirmek için tıkladığınızda kapatmak için sadece 1 diğer ul açık (yüklenen ul dışında) – Keith

+0

https://jsfiddle.net/q9munmab/4/ updated – Keith

İlgili konular