2016-03-31 23 views
0

Ben içimde diğer öğelerine sahip bir öğeye tıklarsanız değiştirir ki bir ül listesi var:Yuvalanmış bir ul listesini nasıl daraltabilirim?

$('li a').click(function (e) { 
    e.preventDefault(); 
    var ullist = $(this).parent().children('ul:first'); 
    ullist.slideToggle(); 
}); 

Here is the fiddle

bunu isterim:

<ul> 
    <li><a href "#">Hello World</a> 

     <ul> 
      <li><a href "#">Hello World</a> 

      </li> 
      <li><a href "#">Hello World</a> 

       <ul> 
        <li><a href "#">Hello World</a> 

        </li> 
        <li><a href "#">Hello World</a> 

        </li> 
       </ul> 
      </li> 
      <li><a href "#">Hello World</a> 

      </li> 
     </ul> 
    </li> 
    <li><a href "#">Hello World</a> 

    </li> 
    <li><a href "#">Hello World</a> 

    </li> 
    <li><a href "#">Hello World</a> 

    </li> 
</ul> 

Bu script pageload üzerinde tüm "klasörler" kapalıdır.

Ben böyle yapmaya çalıştık:

$(window).load(function(){ 
    var ullist = $('li a').parent().children('ul:first'); 
    ullist.hide(); 
    $('li a').click(function (e) { 
     e.preventDefault(); 
     var ullist = $(this).parent().children('ul:first'); 
     ullist.slideToggle(); 
    }); 
}); 

ama sonra sadece ana kapatılır "klasör" ve bunun üzerine tıkladığınızda, tüm diğer klasörler açıktır.

+0

ben sonucu var! Var ullist = $ ('li a'). Parent(). Children ('ul: first'); 'var ullist = $ ('li a'). Parent(). Children ('ul '); ' – Jarla

+0

Ama çözümümdeki sorun, tüm klasörler ve içerikler gizlenmeden önce bir saniye boyunca akıyor. Bunu önlemek mümkün mü? – Jarla

+1

Cevabınız çözülmüşse, kendi sorunuzu cevaplayın ve Çözüm olarak işaretleyin. Son yorumunuzla ilgili olarak, saklanmadan önce bir saniyeliğine "kızarma" yı önlemeyi tercih ederseniz, varsayılan olarak "ul" için CSS özelliğini gizli olarak ayarlamayın? Bu şekilde, varsayılan olarak gizlenirler ve yazdığınız işlevselliğe sahip olurlar. – Unapedra

cevap

1

içine Var ullist = $('li a').parent().children('ul:first'); değiştirmek gerekiyor:

0

Sonuçum var! Hazır belge üzerinde $('ul ul').hide() kullanabileceğiniz tüm listeleri daraltmak için var ullist = $('li a').parent().children('ul');

İlgili konular