Ich versuche gerade die funktion um zu stricken:
Edit fiddle - JSFiddle
Beim klick auf ein "level_1" "li", bekommt das kind element "level_2" den attribut visibility: visible; und das div "#nav" die höhe von diesem kindelement "level_2", dann slided das div "#nav" nach unten.
Das selbe natürlich dann bei einem klick auf ein anderes "level_1" "li", das gerade offene div schließt sich, und das kindelement bekommt wieder "visibility:hidden", erst dann öffnet sich das andere "li".
Nur leider wird die höhe nur einmal bestimmt und beim klick wird jedes "level_2" element sichtbar.
Edit fiddle - JSFiddle
Beim klick auf ein "level_1" "li", bekommt das kind element "level_2" den attribut visibility: visible; und das div "#nav" die höhe von diesem kindelement "level_2", dann slided das div "#nav" nach unten.
Das selbe natürlich dann bei einem klick auf ein anderes "level_1" "li", das gerade offene div schließt sich, und das kindelement bekommt wieder "visibility:hidden", erst dann öffnet sich das andere "li".
Nur leider wird die höhe nur einmal bestimmt und beim klick wird jedes "level_2" element sichtbar.