Avatar billede slejpnir Nybegynder
23. juni 2003 - 15:02 Der er 13 kommentarer og
1 løsning

Gardinmenu - flytte allerede viste filer

Jeg vil gerne gennemløbe denne menu. Når jeg har trykket på Solen skal den næste fil hedde Han og Solen skal "forsvinde". Det gør den ikke. Den står i stedet for under "Han".
Hvordan gør man det?
<Center><Form><P>
<select onchange="location=this.options[this.selectedIndex].value;"
style="background-color:#CCCCFF;">
  <option value="master114.html">Solen</option>
  <option value="Han.html">Han</option>   
  <option value="Sidder.html">Sidder</option>
</select>
</form></center>
Avatar billede skovenborg Nybegynder
24. juni 2003 - 01:50 #1
Okay, hvis jeg har forstået dig ret vil du slette det menupunkt som henviser til den samme side. Det vil derfor være lettest for dig at lave menuen med java script:
<script language="javascript">
arrindex = 0;
menu = new Array();
menu[arrindex++] = "master144.html::Solen";
menu[arrindex++] = "Han.html::Han";
menu[arrindex++] = "Sidder.html::Sidder";
function lav_menu()
{

        for (i=0;i<menu.length;i++)
    {
        menu_index = menu[i].split("::");
        side = "http://www.lyrikeren.dk/Indlaeg/"+menu_index[0];
        if (side != location.href) document.write("<option value='"+menu_index[0]+"'>"+menu_index[1]+"</option>");
        else;

    }

}
</script>
</head>
<body>
<Center><Form><P>
<select onchange="location=this.options[this.selectedIndex].value;" style="background-color:#CCCCFF;">
<script language="javascript">
lav_menu();
</script>
</select>
</p></form></center>
Avatar billede skovenborg Nybegynder
24. juni 2003 - 01:52 #2
Ja nu bruger jeg jo sådan set din side fra http://www.eksperten.dk/spm/368101 - så jeg kunne jo godt lave det samlede script:
<script language="javascript">
arrindex = 0;
menu = new Array();
menu[arrindex++] = "master144.html::Solen";
menu[arrindex++] = "Han.html::Han";
menu[arrindex++] = "Sidder.html::Sidder";
function lav_menu()
{
current_site = parent.frames["framenavn"].location;
        for (i=0;i<menu.length;i++)
    {
        menu_index = menu[i].split("::");
        side = "http://www.lyrikeren.dk/Indlaeg/"+menu_index[0];
        if (side != current_site) document.write("<option value='"+menu_index[0]+"'>"+menu_index[1]+"</option>");
        else;

    }

}
</script>
</head>
<body>
<Center><Form><P>
<select onchange="location=this.options[this.selectedIndex].value;" style="background-color:#CCCCFF;">
<script language="javascript">
lav_menu();
</script>
</select>
</p></form></center>
Avatar billede skovenborg Nybegynder
24. juni 2003 - 01:55 #3
Kunne lige forklare konceptet med at lave menuen:
Først skriver du menu[arrindex++] = "option value::Teksten som bliver vist";
På den måde kan du så hurtigt lave en masse af dem.

Derudover glemte jeg at du bliver nød til at reloade din menu-frame, for ellers bliver menuen jo kun ændret en gang:
onchange="location=this.options[this.selectedIndex].value;location.reload();"
Avatar billede skovenborg Nybegynder
24. juni 2003 - 01:58 #4
skal lige tilføje at onChange ikke virker ordentligt på det øverste element. Du skulle derfor lave et enkelt menu-punkt øverst:
<select onchange="location=this.options[this.selectedIndex].value;" style="background-color:#CCCCFF;">
<option value="">--MENU--</option>
<script language="javascript">
lav_menu();
</script>

Så slipper du for det problem :)
Avatar billede slejpnir Nybegynder
24. juni 2003 - 07:19 #5
Nej, der skal ikke "slettes" noget sådan fysisk. Hvis man starter på at læse én forfatter skal man kunne læse hele hans produktion ved at gennemløbe menuen. De digte man har læst skal forsvinde opad, så man kan så de digte man ikke har læst endnu.
Sådan er det ikke nu. Der bliver man ved med a kunne se alle digte og begynder måske at læse et man allerede HAR læst én gang. Er du med?
Avatar billede slejpnir Nybegynder
24. juni 2003 - 07:21 #6
Desuden er der det problem, at når en forfatter tilføjer et digt, skal jeg ind og tilføje det nye digt på samtlige andre af hans sider. Det må være muligt at henvise til et "list", så jeg kun skal tilføje digtet et sted.
Avatar billede slejpnir Nybegynder
24. juni 2003 - 07:35 #7
Det er vist meget uklart det jeg siger. Jeg prøver lige igen.
Der er i alt 7 digte. Når jeg har læst det ene og linker videre til næste, vises stadig alle 7 digte. Men jeg mangler jo kun at læse 6.
Så "det 1" skal ikke vises længere.
Avatar billede skovenborg Nybegynder
24. juni 2003 - 12:04 #8
Det kan du i teorien godt med nogle cookies (samt lidt PHP/ASP), men jeg synes egentlig ikke det er nogen særlig god ide'. Hvad hvis jeg læser et digt på din side, og gerne vil læse det igen senere? Du kan vel ikke forvente folk kun bruger din side for at læse alle digtene på en gang - og at de ikke springer frem og tilbage mellem de forskellige digte.

Men som sagt kan du godt - det er bare ikke den bedste løsning.
Avatar billede slejpnir Nybegynder
24. juni 2003 - 12:28 #9
Godt. Jeg tænker lidt. Mange tak for nu.
Avatar billede slejpnir Nybegynder
24. juni 2003 - 12:29 #10
skovenborg - lav lige et svar så du kan få nogle point :o))
Avatar billede skovenborg Nybegynder
24. juni 2003 - 17:22 #11
Jamen så gør jeg det :-)

Du dropper altså at slette de besøgte sider i menuen?
Avatar billede skovenborg Nybegynder
24. juni 2003 - 17:23 #12
Hov det var stadig en kommentar ;-)
Avatar billede slejpnir Nybegynder
24. juni 2003 - 21:15 #13
Nej, men jeg har gjort det valgfrit - og i øvrigt brugt din kode. Mange tak for hjælpen.
Avatar billede skovenborg Nybegynder
24. juni 2003 - 23:27 #14
Jamen jeg takker da for point :o)
Held og lykke med din side.
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