2010-03-13 9 views
5

Ho bisogno di aggiungere alcuni handle di espansione/compressione dello stile armoniano a una serie di div del contenitore padre nella mia applicazione. È qualcosa di troppo semplice per una libreria come jquery?div semplici Espandi/Collapse> JQuery?

Esempio:

<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

È questo markup impostato in pietra, o hai il controllo su di esso? per esempio. Potresti avvolgere gli elementi figli in un contenitore div? –

+0

@Nick: ho il controllo completo di esso. –

risposta

1

provare qualcosa di simile:

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

Che verrà espandere o nascondere il contenuto dei s "handleDiv" ogni volta che si fa clic. Suggerirei di far sì che quei collegamenti "espandi | collapse" e attaccassero il gestore dei clic a loro, in modo che un clic in qualsiasi punto del div non lo attivi.

Se si vuole che iniziano chiuso, sia lo stile li chiuse nel foglio di stile:

.handleDiv div { 
    display: none; 
} 

o aggiungere un ".nascosto()" alla fine del frammento di jQuery, all'inizio della mia risposta .

+0

Penso che tu voglia '.handleDiv div' lì sul CSS –

+0

Oops, grazie! Mi è mancato. – bhollis

4

Ho appena scritto un plugin per farlo.

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

+0

Questo plugin è eccellente, ma i principianti dovrebbero notare che lo script ' 'dovrebbe essere messo in fondo alla pagina (subito prima del tag' '). –

+1

Sono contento che il plug-in sia stato d'aiuto. Puoi mettere questo tag script ovunque tu voglia. Ma assicurati che la chiamata sia racchiusa nel callback jQuery 'DOM ready':' '. Questo è il caso per praticamente ogni cosa correlata a jQuery. – Sylvain

+0

Sylvain è corretto, tuttavia come noob dovevo provare a inserire in varie località e nella testa è l'unica volta che ha funzionato per me. (Ad esempio, metterlo in un rotaio erb parziale nel mio caso non ha funzionato) – Ben