Avatar billede martinhk Nybegynder
22. oktober 2002 - 13:46 Der er 12 kommentarer og
1 løsning

TreeMenu med automatisk lukkefunktion

100 point til den der kan tilføje en automatisk lukkefuntionalitet til TreeMenu fra www.rolator.dk

Lukkefunktionaliteten skal fungere rimeligt simpelt, den skal bare lukke samtlige menu-grene idet en ny gren åbnes.
Jeg genererer TreeMenu dynamisk v.h.a. PHP, så jeg ved ikke på forhånd hvad de enkelte menu elementer hedder.
Avatar billede nikolajdu Nybegynder
22. oktober 2002 - 13:58 #1
Du kan tage min fra henchozs-drenge.dk måske....
Avatar billede bamzen Nybegynder
22. oktober 2002 - 14:06 #2
du kan lave noget ala dette i din treemenu.js

myMenu = new Array("lag1","lag2","lag3")

function lag(lagnavn, bil) // IE4+
{
if (document.all[lagnavn].style.display == 'none') {
    document.all[lagnavn].style.display = 'block';
    bil.src = 'pics/minus.png';
} else {
    document.all[lagnavn].style.display = 'none';
    bil.src = 'pics/plus.png';
}
for(i=0;i<myMenu.length;i++){
if(myMenu[i]!=lagnavn){
document.all[lagnavn].style.display = 'none';
bil.src = 'pics/plus.png';
}       
}
}

function menu(action, menunavn)
{
if (action == "over") { document.all[menunavn].style.backgroundColor = "";}
if (action == "out") { document.all[menunavn].style.backgroundColor = ""; }
}

function skift(hvor, farve)
{
// husk # i kald til funktion
hvor.style.backgroundColor = farve;
}


det jeg gør at at definere alle dine forskellige lag i et js array

hvergang funktionen bliver tricket, vil den så løbe alle myMenu elementerne igennem, og hvis de ikke er lig med det nuværende element, så skal de lukkes.... hvis de er det nuværende element, gælder den status de lige har fået
Avatar billede martinhk Nybegynder
22. oktober 2002 - 14:14 #3
Er lag1, lag2 osv. ikke statiske menu elementer??
Avatar billede bamzen Nybegynder
22. oktober 2002 - 14:34 #4
Det er navnene på dine hovedelementer
dem du også kalder med lagnavn i

lag(lagnavn,bil)
Avatar billede martinhk Nybegynder
22. oktober 2002 - 14:58 #5
Hvordan vil du ligge dem dynamisk ned i myMenu ??
Kan det gøres fra PHP ?
Avatar billede bamzen Nybegynder
22. oktober 2002 - 15:04 #6
ligesom du kan generere dem i php altså html koden for dem, må du også kunne skrive det array....

der er bare to problemer hvis jeg skal hjælpe dig med php,,,,

1.... det er ikke den rigtige kategori
2.... så skal jeg først lære php, så det kommer nok til at tage noget tid...

Jeg er dog overbevist om at min løsning vil fungere....
Avatar billede bamzen Nybegynder
22. oktober 2002 - 15:06 #7
dog kunne jeg forestille mig at det var lettere at føre det meget simple javascript fra treemenu.js ind i den fil der danner menuen....

så skal du ikke lave 2 php filer, men kun rette i den ene du har...
Avatar billede martinhk Nybegynder
22. oktober 2002 - 15:13 #8
OK - Lad os droppe det med PHP...

Kan man ikke lave en simpel javascript funktion som adderer et element til myMenu array'et??

Den funktion kan jeg så bare kalde for hvert nyt menu element jeg genererer.

et eller andet med:

function addToMyMenuArray(lagnavn)
{

}
Avatar billede bamzen Nybegynder
22. oktober 2002 - 15:25 #9
jo det kunne du naturligvis

hvis du eksempelvis indsatte følgende kode efter hvert punkt
<script language="JavaScript">
myMenu[myMenu.length] = 'tekstenduvilsaetteind'
</script>
Avatar billede bamzen Nybegynder
22. oktober 2002 - 15:26 #10
og så tidligere bare skrev

var myMenu = new Array()
Avatar billede bamzen Nybegynder
22. oktober 2002 - 15:26 #11
så skulle den automatisk tilføje en ny til arrayet
Avatar billede martinhk Nybegynder
22. oktober 2002 - 15:28 #12
Smukt - Det vil jeg prøve...
Avatar billede bamzen Nybegynder
22. oktober 2002 - 15:30 #13
sig til hvis det volder problemer
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester