2010-03-13 6 views
5

J'ai besoin d'ajouter des poignées expand/collapse de style accordéon à une série de divs conteneur parent dans mon application. Est-ce quelque chose qui est trop simple pour une bibliothèque comme jquery?Simple Développer/Réduire divs> JQuery?

Exemple:

<div class="handleDiv"> expand | collapse 
    <div>child element</div> 
    <div>child element</div> 
</div> 

<div class="handleDiv"> expand | collapse 
    <div>child element</div> 
    <div>child element</div> 
</div> 
+0

http://docs.jquery.com/UI/Accordion –

+0

Est-ce balisage dans la pierre, ou avez-vous avez le contrôle sur elle? par exemple. Pourriez-vous envelopper les éléments enfants dans un conteneur div? –

+0

@Nick: J'en ai le contrôle complet. –

Répondre

1

Essayez quelque chose comme ceci:

$('.handleDiv').click(function() { 
    $(this).children().toggle(); 
}); 

Ça va développer ou cacher le contenu des "s handleDiv" à chaque fois que vous cliquez dessus. Je suggère de faire ces liens "expand | collapse" et de leur attacher le gestionnaire de clic, pour qu'un clic n'importe où dans le div ne le fasse pas basculer.

Si vous voulez de commencer fermé, que ce soit leur style fermé dans votre feuille de style:

.handleDiv div { 
    display: none; 
} 

ou ajouter un « .hide() » à la fin de l'extrait jQuery au début de ma réponse .

+0

Je pense que vous voulez '.handleDiv div' il sur le CSS –

+0

Oups, merci! Manqué ça. – bhollis

4

Je viens d'écrire un plugin pour le faire.

Voir http://sylvain-hamel.github.io/simple-expand/

+0

Ce plugin est excellent mais les débutants devraient noter que le script ' 'devrait être placé au bas de la page (juste avant la balise' '). –

+1

Je suis heureux que le plug-in a aidé. Vous pouvez mettre cette étiquette de script partout où vous voulez. Mais assurez-vous que l'appel est enveloppé dans le rappel 'DOM ready' de jQuery:' '. C'est le cas pour à peu près tout ce qui concerne jQuery. – Sylvain

+0

Sylvain a raison, mais en tant que noob j'ai dû essayer de mettre le dans différents endroits et dans la tête est la seule fois où cela a fonctionné pour moi. (par exemple, le mettre dans un rail erb partielle dans mon cas ne fonctionnait pas) – Ben