Avatar billede wolfgang Praktikant
21. november 2005 - 13:47 Der er 10 kommentarer og
2 løsninger

Funktion til generering af menu

Hej Eksperter,
I forbindelse med et website, hvor der trækkes indhold ud fra en DB (ASP), vil jeg gerne have et javascript, jeg kan kalde når det er nødvendigt.
Det skal kunne "levere" en menu, der passer til den tekst/punkt der er klikket på.
Denne menu kunne f.eks. indeholde Print, Rediger, Send pr. mail, etc...

Min tanke er, at man i scriptet kunne klargøre alle muligheder i menuen og så kun kalde dem der er brug for, vha. linket på siden.

F.eks. noget ala
function doMenu(menupunkt1,menupunkt2,menupunkt3,menupunkt4)
+ Kode...

Linket ser således ud: doMenu(1,1,0,1)
Er værdien =1 skal det menupunkt med i den viste menu.

Som en del af funktionen, skal der vel laves en form for løkke, der tjekker om værdi=1 så skal punktet med.

Jeg forestiller mig, at det er noget med at udskrive resultatet via innerHTML til et DIV?

Grunden til mit ønske er, at jeg kun vil vedligeholde menuen et sted og så blot kalde den efter behov.
Avatar billede roenving Novice
21. november 2005 - 13:52 #1
-- endnu bedre, skriv hvert delmenu i hvert sit element, og vis og skjul så:

function doMenu(m1,m2,m3,m4){
  document.getElementById('Menu1').style.display = m1 ? "block" : "none";
  document.getElementById('Menu2').style.display = m2 ? "block" : "none";
  document.getElementById('Menu3').style.display = m3 ? "block" : "none";
  document.getElementById('Menu4').style.display = m4 ? "block" : "none";
}

-- block skal bruges, hvis du bruger div'er til indeholde de forskellige menupunkter, hvis det f.eks. er spans, skal du udskifte med "inline" !-)
Avatar billede wolfgang Praktikant
21. november 2005 - 14:00 #2
Hmm.. Der blev jeg vist lige sat af :)
Kan du give et eksempel på hvordan det skal udføres?
Avatar billede roenving Novice
21. november 2005 - 14:08 #3
F.eks.

<div id="Menu1" style="display:none;">
  <a href="printDoc.asp"><img src="print.gif" border="0"></a>
</div>

<div id="Menu2" style="display:none;">
  <a href="redigerDoc.asp"><img src="rediger.gif" border="0"></a>
</div>

<div id="Menu3" style="display:block;"><!-- eneste synlige fra start -->
  <a href="sendMail.asp"><img src="mail.gif" border="0"></a>
</div>

<div id="Menu4" style="display:none;">
  <a href="andet.asp"><img src="nogetAndet.gif" border="0"></a>
</div>
Avatar billede wolfgang Praktikant
21. november 2005 - 14:39 #4
Det virker jo fint! Men det ikke helt som jeg havde tænkt mig.
Ovenstående eksempel vil jo betyde, at jeg skal de div's for hvert udtræk i database.
- Jeg tror desværre, at jeg har forklaret mig dårligt - prøver lige igen.

Menu'en/funktionen skal bruges på nogle sider, med udtræk fra en Database.
For hver post i databasen, skal denne menu kunne kaldes og vises ved punktet (Div med position?)

Kan det forklare min situation bedre?
Avatar billede roenving Novice
21. november 2005 - 14:49 #5
Det absolut nemmeste er at skrive alle mulige menuer hver eneste gang, men så som udgangspunkt kun vise de relevante, for så slipper du også for at fedte rundt med en masse redundant kode, og det virker alt andet lige meget mere sikkert og hurtigt !-)

-- men hvis det f.eks. er en stribe actions til et antal linjer med mails eller tekster (à la et CMS-system) er det nemmeste at trigge visning server-side, så du simpelthen kun sender aktuelle links !o]
Avatar billede wolfgang Praktikant
21. november 2005 - 15:05 #6
Jeg læner mig op ad din erfaring - Det lyder ret fornuftigt :)
Det ser også ud til at det nemmere og mere gennemskueligt for mig at vedligehold.

1) Kan det ikke lade sig gøre, at skrive de forskellige div's(menupunkter) ud i et samlet div.
2) Jeg vil gerne have menuen skrevet ud, der hvor man klikker med musen. Kan man styre det "samlede" div, vha. placering således at menuen vises "oven på" sidens andet indhold?

Håber du kan hjælpe
Avatar billede roenving Novice
21. november 2005 - 15:09 #7
1. Der er ingen propblemer i at samle en flok elementer i en div (alle typer elementer må forkomme i en div -- html, head og body er elementer i den forstand !-)

-- og du kan sagtens have et element, som kommer frem under særlige omstændigheder og indeholder noget bestemt html-kode, se f.eks. http://www.bosrup.com/web/overlib/ ...
Avatar billede wolfgang Praktikant
21. november 2005 - 15:15 #8
Tak for svaret...
Vil du ikke ligge et svar i dette spørgsmål, så vi kan få lukket :)
Avatar billede roenving Novice
21. november 2005 - 15:17 #9
Hrm, en udeladelse:

... og body er _ikke_ elementer ...

-- els velbekomme '-)

-- og behold selv en hel del af dine point !-)
Avatar billede wolfgang Praktikant
21. november 2005 - 15:28 #10
OK :D
Avatar billede wolfgang Praktikant
21. november 2005 - 15:28 #11
Takker :D
Avatar billede roenving Novice
21. november 2005 - 15:29 #12
-- og jeg takker for point ;~}
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