2010-03-13 6 views
5

Ich muss einige Griffe erweitern/reduzieren Griff zu einer Reihe von übergeordneten Container Divs in meiner Anwendung hinzufügen. Ist das etwas, das für eine Bibliothek wie jQuery zu einfach ist?Einfache Expand/Collapse divs> JQuery?

Beispiel:

<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

dieses Markup in Stein gemeißelt ist, oder haben Sie die Kontrolle über sie? z.B. Könnten Sie die untergeordneten Elemente in einen Container div? –

+0

@Nick: Ich habe die vollständige Kontrolle darüber. –

Antwort

1

Probieren Sie etwas wie folgt aus:

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

Das wird der Inhalt der "handleDiv" s erweitern oder ausblenden, wenn Sie darauf klicken. Ich würde vorschlagen, diese "expand | collapse" -Sachen-Links zu erstellen und den Click-Handler an sie anzuhängen, so dass ein Klick auf eine beliebige Stelle im div diese nicht umschaltet.

Wenn Sie wollen, geschlossen beginnen, entweder Stil sie in Ihrem Stylesheet geschlossen: am Anfang meiner Antwort

.handleDiv div { 
    display: none; 
} 

oder fügen Sie ein „.Hide()“ bis zum Ende des jQuery-Schnipsel .

+0

Ich denke du willst '.handleDiv div' da auf der CSS –

+0

Hoppla, danke! Verpasst das. – bhollis

4

Ich habe gerade geschrieben habe ein Plugin, das zu tun.

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

+0

Dieses Plugin ist ausgezeichnet, aber Anfänger sollten beachten, dass das Skript ' 'sollte am Ende der Seite (kurz vor dem'' Tag) gesetzt werden. –

+1

Ich bin froh, dass das Plug-in geholfen hat. Sie können dieses Skript-Tag an einer beliebigen Stelle platzieren. Aber stellen Sie sicher, dass der Aufruf in jQuery 'DOM ready'-Callback eingeschlossen ist:' '. Dies ist der Fall für so ziemlich alles, was jQuery betrifft. – Sylvain

+0

Sylvain ist richtig, aber als Noob muss ich habe versucht das an verschiedenen Orten und im Kopf ist die einzige Zeit, die es für mich gearbeitet hat. (z. B. in ein Schienen-Erb teilweise in meinem Fall zu arbeiten, hat nicht funktioniert) – Ben