Comment faire un "collapse all" avec toggle?

salut à tous,

J’ai une boucle
<% @list.each | item| %>
<% item.id
%>

<%= link_to_remote ‘show other ids’, :url=>{:action=>showall} %>

<%end%>

Je voudrais que quand on click sur “show other ids”, tous les autres
span soient dévoilés (avec un toggle par exemple) sauf le span qui
correspond au lien en question, celui qui a été
clické.
est-ce que vous avez déjà fais un truc dans ce genre?

Merci d’avance

Pat

Hey!

Patrick A. a écrit :

Je voudrais que quand on click sur “show other ids”, tous les autres
span soient dévoilés (avec un toggle par exemple) sauf le span qui
correspond au lien en question, celui qui a été clické.

Colle une classe perso à tous les spans qui t’intéressent, et fais un
link_to_function au lieu d’un link_to_remote, vers une fonction qui
ferait en gros ça :

document.getElementsByClassName(‘taClasse’).each(Effect.toggle);

Salut Patrick,

Patrick A. wrote:

correspond au lien en question, celui qui a été clické.

est-ce que vous avez déjà fais un truc dans ce genre?

Je suis pas sur d’avoir bien compris ce que tu voulais faire voici ce
que j’ai compris et une solution qui irai avec.

Objectif :

  • Faire une liste d’item
  • A l’état d’origine seul le premier item est visible
  • En cliquant sur le lien “Show all” montrer tous les autre items de la
    liste
  • Si on clique à nouveau tous les items sont masqué sauf le premier.

Solution : (de tête, pas
testé)Plugin nécessaire : UJS

http://pastie.caboo.se/32843

En esperant que ca te soit utile :wink:
Dans la pratique il serai mieux de faire que ca fonctionne aussi sans
JS, ce qui n’est pas le cas de mon code.

Bonne continuation,

Sébastien Grosjean - ZenCocoon
seb.box.re - zencocoon.com

Merci.
En fait il s’agit d’une liste d’item invisible. Ils sont tous
invisible. Et à coté de chaque item on retrouve à chaque fois le lien
“Show other items” qui lui est toujours visible. Quand on click sur ce
lien, tous les autres items sont alors visible sauf celui qui se
trouve à coté du lien qui a été
clické.