Avatar billede kdjweb Nybegynder
13. juli 2007 - 20:36 Der er 4 kommentarer og
1 løsning

skjul gammel layer

Hej eksperter,

Jeg har et lille problem med at skjule ældre lag. F.eks. jeg har 2 knapper jeg kan trykke på, når jeg trykker på den ene bliver div1 visible, det samme med div2. Jeg vil gerne have det sådan at når man trykker på knap 2 og f.eks. har div1 visable så skal div2 blive visible og div1 hidden.

altså:
Klik på knap1 - div1 = visible
Klik på knap2 - div1 = hidden, div2 = visible.

skal lige siges jeg har meget mere end 2 divs og knapper :)
Avatar billede crazysnap Seniormester
13. juli 2007 - 23:47 #1
Hej kdjweb,


Du kan f.eks. bare gøre brug af en temp variabel som gemmer den div der er åben. Hver gang du klikker på en knap, lukkes den div der åben hvorefter den nye gøres synlig. Et lille eksempel:



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/TR/html401">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
        <script type="text/JavaScript">
        var divPrev = null;
       
        function showHide(divId)
        {
            if(divPrev != null)
                divPrev.style.display = "none";
               
            divPrev = document.getElementById(divId);
            divPrev.style.display = "block";
        }
        </script>
    </head>
    <body>
        <table>
            <tr>
                <td><input type="button" value="vis/skjul div1" onclick="showHide('div1');" /></td>
                <td><input type="button" value="vis/skjul div2" onclick="showHide('div2');"/></td>
                <td><input type="button" value="vis/skjul div3" onclick="showHide('div3');"/></td>
            </tr>
            <tr>
                <td><div id="div1" style="display: none;">div1</div></td>
                <td><div id="div2" style="display: none;">div2</div></td>
                <td><div id="div3" style="display: none;">div3</div></td>
            </tr>
        </table>
    </body>
</html>



Mvh.

- Snap :)
Avatar billede kdjweb Nybegynder
13. juli 2007 - 23:57 #2
Snap > Super, men når man klikker på knap1 mens at div1 er åben, kan man så få den til at lukke? ellers ville den jo altid være åben :)

Forresten, virker den i ældre versioner af IE?
Avatar billede crazysnap Seniormester
14. juli 2007 - 00:33 #3
Hej kdjweb,


Tilføjede en ekstra metode som checker for om document.all er supported i stedet for getElementById. Jeg mener nemlig kun at getElementById virker tilbage til Explorer 5. Men anyways, jeg har udvidet scriptet yderligere så den understøtter at skjule en åben div når der klikkes på dens tilhørende knap.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/TR/html401">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
        <script type="text/JavaScript">
        var divPrev = null;
       
        function showHide(divId)
        {
            if(divPrev != null)
            {
                divPrev.style.display = "none";
               
                if(divId == divPrev.id)
                {
                    divPrev = null;
                    return;
                }
            }
               
            divPrev = getElement(divId);
            divPrev.style.display = "block";
        }
       
        function getElement(id)
        {
            if(document.all)
                return document.all[id];
            else
                return document.getElementById(id);
        }

        </script>
    </head>
    <body>
        <table>
            <tr>
                <td><input type="button" value="vis/skjul div1" onclick="showHide('div1');" /></td>
                <td><input type="button" value="vis/skjul div2" onclick="showHide('div2');"/></td>
                <td><input type="button" value="vis/skjul div3" onclick="showHide('div3');"/></td>
            </tr>
            <tr>
                <td><div id="div1" style="display: none;">div1</div></td>
                <td><div id="div2" style="display: none;">div2</div></td>
                <td><div id="div3" style="display: none;">div3</div></td>
            </tr>
        </table>
    </body>
</html>



Mvh.

- Snap :)
Avatar billede kdjweb Nybegynder
14. juli 2007 - 00:38 #4
Smukt! Sad og prøvede mig frem, men er vist for træt til at se sammenhængen lige nu :P

Tusind tak!
Avatar billede crazysnap Seniormester
14. juli 2007 - 00:49 #5
Det var så lidt! :)

Og tak for pointene!..


Mvh.

- Snap :)
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