Avatar billede prajm Nybegynder
30. april 2004 - 01:35 Der er 9 kommentarer

Gør det hele nemmere ?

Hey Folkens

jeg har siddet og brygget lidt på en menu og som gerne skulle være i flere levels .. bare meget simpelt , og er nu kommet frem til en ULTRA meget simpel løsning , men kunne godt tænke mig og vide om jeg ikke kunen gøre det nemmere med mere brug af javascript ellerligende eller event. forslag!.

følgende kode :

<html>
    <head>
        <script language="Javascript">
        function CreateCookie(name,value) {
              var argv=arguments;
                  var argc=arguments.length;
                var expires=(argc>2) ? argv[2] : null;
                var path=(argc>3) ? argv[3] : null;
                  var domain=(argc>4) ? argv[4] : null;
                  var secure=(argc>5) ? argv[5] : false;
                document.cookie=name+"="+escape(value) +
            ((expires === null) ? "" : ("; expires="+expires.toUTCString())) +
            ((path === null) ? "" : ("; path="+path)) +
            ((domain === null) ? "" : ("; domain="+domain)) +
            ((secure === true) ? "; secure" : "");
            }           
       
        function Get_Cookie(name) {
   
                    var start = document.cookie.indexOf(name+"=");
                    var len = start+name.length+1;
                    if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
                    if (start == -1) return null;
                    var end = document.cookie.indexOf(";",len);
                    if (end == -1) end = document.cookie.length;
                    return unescape(document.cookie.substring(len,end));
            }
        function display(id) {
               
            if(document.getElementById(id).style.display!='block') {
                        document.getElementById(id).style.display='block';
                CreateCookie(id,"0");   
                } else {
                        document.getElementById(id).style.display='none';
                      CreateCookie(id,"1");
            }
          }
            function tjek(id) {
                    if(Get_Cookie(id)=="0")
                    {
                        document.getElementById(id).style.display='block';
                      }
            if(Get_Cookie(id)=="1")
            {
                document.getElementById(id).style.display='none';
            }
             
        }
        </script>
    </head>
<body>
    <style>
        .menu {
           
        background-color:#efefef;
        border: 1px dotted black;
        font-family: verdana;
        font-size: 8pt;   
        }
    </style>

    <table class="menu" align="center" width="400">
    <tr>
        <td>
        <a href="java script:display('sub1');"> Main1 </a><br>
       
            <span id="sub1" style="display:none">
                &nbsp;<a href="java script:display('sub11');">sub1</a>
            </span>
            <span id="sub11" style="display:none">
                &nbsp;&nbsp;<a href="sub2">sub1.1</a>
            </span>
        <a href="java script:display('sub2');"> Main2 </a><br>
        <span id="sub2" style="display:none">
        <a href="sub2">sub2</a>
        </span>
       
        <a href="java script:display('sub3');"> Main3 </a><br>
        <span id="sub3" style="display:none">
        <a href="sub3">sub3</a>
        </span>
        </td>
    </tr>
    </table>
</body>
</html>
       


og aktivt eksempel kan ses på http://server.stakkeldk/menu/

håber i kan give ideer eller hjælp til udvidelse :)
Avatar billede prajm Nybegynder
30. april 2004 - 01:35 #1
Skal lige siges jeg ikke selv har lavet cookie funktioner bare fisket frem til test :-)
Avatar billede roenving Novice
30. april 2004 - 02:23 #2
Nemmere kan det ikke gøres, nej ...

Eneste, som kan være lidt generende, er, at de andre ikke folder sammen, det kunne man nok lave noget til ...

-- men hvad er ideen med de cookies ?-)

Har du haft en testknap ?-)

-- og tag så og flyt din style (og det hedder <style type="text/css"> !-) op i head-sektionen, hvor det hører hjemme !o]
Avatar billede prajm Nybegynder
30. april 2004 - 02:25 #3
Hej roenving.

Det jeg nu mener tænkte på var multi levels. . alt Sub1 sub1.1 o.s.v kan man ikke lave det med noget array eller ligende på en nem og smart måde ?

Det jeg har brugt mine cookies til .. er og gemme det nuværende menu valg så den blev hvis man opdaterede siden =)
Avatar billede prajm Nybegynder
30. april 2004 - 02:26 #4
Tænkte mere på kan det ikke konstrueres med arrays f.eks ala my level = new array("overskrift","linknavn","url") og så bare køre igennem på en måde ?
Avatar billede roenving Novice
30. april 2004 - 02:34 #5
Hvis du kigger på de menuer, som du kan få, er mange af dem lavet ud fra arrays, og selv dem, som er ligeglade med browser-kompatibilitet, fylder hundredevis af kodelinjer, for at konstruere og vedligeholde dem ...
Avatar billede prajm Nybegynder
30. april 2004 - 02:37 #6
yeah , mere derfor jeg ledte lidt efter et simpelt eksempel på sådan noget =o)
Avatar billede roenving Novice
30. april 2004 - 02:42 #7
Jeg kan kun sige, at det jeg selv har kigget på af sådan noget, er blevet voldsomt kompliceret et lille bitte øjeblik inde i kompleksiteten ...
Avatar billede prajm Nybegynder
30. april 2004 - 02:45 #8
hehe .. har jeg skam også snart indst , og bare overvejet om jeg skal gå i krig med det hehe
Avatar billede =maddog= Nybegynder
03. maj 2004 - 05:11 #9
Man kan jo gøre det til en dyd at lave kode på så få linjer som muligt, men jeg ser anderledes på det. Jeg vil til enhver tid fremhæve kode der søger at være så overskuelig og vedligeholdelsesvenlig som muligt. Objekt orienteret programmering er vejen frem, hvis man ønsker kode der indeholder komplekse 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

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