2010-09-13 6 views
1

j'ai une liste UL comme:Rotation des articles li avec jquery

<ul> 
    <li>menu1</li> 
    <li>menu2</li> 
    <li>menu3</li> 
    <li>menu4</li> 
    <li>menu5</li> 
</ul> 

Je veux utiliser cette liste comme un menu animé JQuery. Configuration de telle sorte que si un utilisateur clique sur menu3, il devient le premier élément de la liste comme menu1 et menu2 sont ajoutés à la fin.

donc après avoir cliqué sur le menu3 ul ressemblerait à ceci:

<ul> 
    <li>menu3</li> 
    <li>menu4</li> 
    <li>menu5</li> 
    <li>menu1</li> 
    <li>menu2</li> 
</ul> 

Toute orientation ou suggestions seraient grandement appréciés.

Répondre

5

Vous pourriez faire quelque chose comme ceci:

$("li").click(function() { 
    var prev = $(this).prevAll(); 
    $.unique(prev).slideUp(function() { 
     $(this).appendTo(this.parentNode).slideDown(); 
    }); 
});​​​ 

Give it a try here, l'appel $.unique() est parce que les éléments de .prevAll() sont dans l'ordre inverse ... et pour annexant jusqu'à la fin, nous voulons dans l'ordre du document.

+0

+1 pour une autre réponse élégante. – JasCav

+0

Il est presque ce que je suis après, mais les LI qui disparaissent disparaissent en même temps. Est-il possible de les faire disparaître un à la fois? et s'estomper dans le fond? –

+0

@Moe - comme ça? http://jsfiddle.net/nick_craver/rBaL2/2/ –