jquery + expandable menu

Tags:    javascript

Helløj der ude,

Jeg sidder og er ved at lave en expandable menu med en forfærdelig masse sub-categories, og grundet det vil jeg gerne have sådan man kun kan have 1 kategori åben af gangen, og hvis man klikker på en ny kategori så bliver den forrige collapsed.

mit JQuery script ser sådan her ud:
Fold kodeboks ind/udKode 


Og virker på koden her:

Fold kodeboks ind/udKode 


Så er spørgsmålet, hvordan får jeg ændret jquery fra at åbne alle divs til kun 1, og hide alle andre?



4 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Jeg havde lidt problemer med click evenet så hvis det ikke virker kan du bruge .live()

Men hvad Jokke mener er:
Fold kodeboks ind/udJScript kode 


Forresten kan du style din "show" class (display: none) i stedet for og skjule den med javascript

Det vil nok være mere optimalt.



Indlæg senest redigeret d. 08.06.2009 21:38 af Bruger #11386
Jeg er i færd med at lave ca. samme type script dog er det animated menus. Dog bruger jeg selv <li> objekter i stedet for <div>.

Måden jeg undgik problemet er ved at collapse alle menuer hver gang der trykkes på et menuobjekt for derefter at expande menuen.

Her brugte jeg bare $("li") i stedet for $(this). Forskellen er at $("li") virker på alle mens $(this) kun virker på den der blev trykket på.

Jeg har uploadet et eksempel med <li> objekter her:

http://nanolog.dk/rishoj/data/rollup/animated-menu.html





Helløj der ude,

Jeg sidder og er ved at lave en expandable menu med en forfærdelig masse sub-categories, og grundet det vil jeg gerne have sådan man kun kan have 1 kategori åben af gangen, og hvis man klikker på en ny kategori så bliver den forrige collapsed.

mit JQuery script ser sådan her ud:
Fold kodeboks ind/udKode 


Og virker på koden her:

Fold kodeboks ind/udKode 


Så er spørgsmålet, hvordan får jeg ændret jquery fra at åbne alle divs til kun 1, og hide alle andre?


Lav en onclick event.


$('div.show').click()
{
//gem all
//vis $(this)
}



Er desværre ikke helt med, bruger ikke jquery særligt meget :/



t