Avatar billede krydset Nybegynder
18. september 2005 - 16:14 Der er 16 kommentarer og
1 løsning

vindues system

Hejsa.... Er ved at lave noget admin system hvor man skal kunne skifte mellem flere "vinduer" har prøvet at lave noget ala det her

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Adobe GoLive">
        <title>Untitled Page</title>
    </head>

    <body bgcolor="#ffffff">
        <script type="text/javascript">
            function showWin(win, preWin){
                document.getElementById(preWin).style.display='none';
                document.getElementById(win).style.display='inline';
                }
        </script>
        <table cellspacing="3" cellpadding="2">
            <tr style="background-color:#d6d6d6;">
                <td id="menu1"><a href="#" onclick="showWin('win1', 'win2');">Generelt</a></td>
                <td id="menu2"><a href="#" onclick="showWin('win2', 'win1');">Data</a></td>
                <td id="menu3"><a href="#" onclick="showWin('win3', 'win2');">Pris</a></td>
                <td id="menu4"><a href="#" onclick="showWin('win4', 'win3');">Billeder</a></td>
                <td id="menu5"><a href="#" onclick="showWin('win5', 'win4');">Varianter</a></td>
                <td id="menu6"><a href="#" onclick="showWin('win6', 'win5');">Kategorier</a></td>
                <td id="menu7"><a href="#" onclick="showWin('win7', 'win6');">Relaterede varer</a></td>
            </tr>
        </table>
       
        <table cellspacing="3" cellpadding="2">
            <tr style="background-color:#d6d6d6;">
                <td width="350px;" height="150px;" id="win1" style="display:inline;">vindue 1</td>
                <td width="350px;" height="150px;" id="win2" style="display:none;">vindue 2</td>
                <td width="350px;" height="150px;" id="win3" style="display:none;">vindue 3</td>
                <td width="350px;" height="150px;" id="win4" style="display:none;">vindue 2</td>
                <td width="350px;" height="150px;" id="win5" style="display:none;">vindue 2</td>
                <td width="350px;" height="150px;" id="win6" style="display:none;">vindue 2</td>
                <td width="350px;" height="150px;" id="win7" style="display:none;">vindue 2</td>
            </tr>
        </table>
    </body>

</html>


Men er godt klar over den ikke virker når der kommer over 2 vinduer med. Men hvordan kan man lave det, er det en meget kompliceret process at lave det ordentligt.....

Skal lige siges jeg er meget noob i JS...

Mvh Thomas L
Avatar billede olebole Juniormester
18. september 2005 - 16:20 #1
<ole>

Prøv at forklare den ønskede virkemåde  :)

/mvh
</bole>
Avatar billede roenving Novice
18. september 2005 - 16:21 #2
Du opbevarer bare det gamle vindue i en variabel:

<script type="text/javascript">
  var oldWin = null;
  function showWin(win){
    if(oldWin)
      oldWin.style.display='none';
    oldWin = document.getElementById(win);
    oldWin.style.display='inline';
  }
</script>

-- så skal du bare kalde funktionen med en paramater !-)

                <td id="menu1"><a href="#" onclick="showWin('win1');">Generelt</a></td>
Avatar billede krydset Nybegynder
18. september 2005 - 16:35 #3
ole -->  når man trykker på eks menu menu6 så skal win6 vises
Avatar billede krydset Nybegynder
18. september 2005 - 16:36 #4
roenvig, dit script virker ikke , de andre vinduer kommer ikke frem.. Det er win1 der vises fra start af, nå jeg trykker på menu2 så bliver win2 ikke vist
Avatar billede roenving Novice
18. september 2005 - 16:46 #5
-- det forstår jeg ikke, det virker absolut uden problemer hos mig, kan du vise et eksempel med fejl ?-)

<script type="text/javascript">
  var oldWin;
  window.onload = function(){
    oldWin = document.getElementById('win1');
  }//så henter vi win1 til start
  function showWin(win){
    oldWin.style.display='none';
    oldWin = document.getElementById(win);
    oldWin.style.display='inline';
  }
</script>

-- iøvrigt skal du nok også fjerne a-taggets default-funktion, så hele vinduet ikke reloader !-)

<td id="menu1"><a href="#" onclick="showWin('win1');return false;">Generelt</a></td>

-- at jeg ikke selv ville finde på at tage udgangspunkt i tabel-celler er en helt anden historie, da jeg vil gætte på, at man får mange sjove effekter i andre browsere !o]
Avatar billede krydset Nybegynder
18. september 2005 - 16:51 #6
Ja men det kan jeg så lave om bagefter, har fundet ud af at FF ikke håndtere det på samme måde :-D
Avatar billede roenving Novice
18. september 2005 - 16:56 #7
-- og mit gæt er, at du i adresselinjen får tilføjet havelågen, når du trykker på de andre links, og det er tegn på at siden er reloadet, og så skal den selvfølgelig vise den første !-)

-- så sæt return false; efter kaldene, som jeg viser til sidst !o]
Avatar billede krydset Nybegynder
18. september 2005 - 16:56 #8
Okay, satte return false på, nu virker det det delvist


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Adobe GoLive">
        <title>Untitled Page</title>
    </head>

    <body bgcolor="#ffffff">
        <script type="text/javascript">
          var oldWin;
          window.onload = function(){
            oldWin = document.getElementById('win1');
          }//så henter vi win1 til start
          function showWin(win){
            oldWin.style.display='none';
            oldWin = document.getElementById(win);
            oldWin.style.display='inline';
          }
        </script>


        <table cellspacing="3" cellpadding="2">
            <tr style="background-color:#d6d6d6;">
                <td id="menu"><a href="#" onclick="showWin('win1'); return false;">Generelt</a></td>
                <td id="menu"><a href="#" onclick="showWin('win2'); return false;">Data</a></td>
                <td id="menu"><a href="#" onclick="showWin('win3'); return false;">Pris</a></td>
                <td id="menu"><a href="#" onclick="showWin('win4'); return false;">Billeder</a></td>
                <td id="menu"><a href="#" onclick="showWin('win5'); return false;">Varianter</a></td>
                <td id="menu"><a href="#" onclick="showWin('win6'); return false;">Kategorier</a></td>
                <td id="menu"><a href="#" onclick="showWin('win7'); return false;">Relaterede varer</a></td>
            </tr>
        </table>
       
        <table cellspacing="3" cellpadding="2">
            <tr style="background-color:#d6d6d6;">
                <td width="350px;" height="150px;" id="win1" style="display:none;">vindue 1</td>
                <td width="350px;" height="150px;" id="win2" style="display:none;">vindue 2</td>
                <td width="350px;" height="150px;" id="win3" style="display:none;">vindue 3</td>
                <td width="350px;" height="150px;" id="win4" style="display:none;">vindue 2</td>
                <td width="350px;" height="150px;" id="win5" style="display:none;">vindue 2</td>
                <td width="350px;" height="150px;" id="win6" style="display:none;">vindue 2</td>
                <td width="350px;" height="150px;" id="win7" style="display:none;">vindue 2</td>
            </tr>
        </table>
    </body>

</html>


når jeg klikker på de 3 første så er det rigtigt. Men når jeg så klikker på nr 4, 5, 6, 7 så er det win2 der vises, hvorfor det ?
Avatar billede roenving Novice
18. september 2005 - 16:57 #9
Fordi du har skrevet vindue 2 i dem !-)
Avatar billede krydset Nybegynder
18. september 2005 - 16:59 #10
AHHHHHH jeg er en S P A S S E R nok fordi der står vindue 2 i dem alle sammen :(
Avatar billede krydset Nybegynder
18. september 2005 - 16:59 #11
Hov skulle lige have opdateret :-D
Avatar billede krydset Nybegynder
18. september 2005 - 17:04 #12
hvorfor virker det her eks egentlig ikke i firefox ???

skal jeg bruge style.visibility i stedet for style.display ?
Avatar billede krydset Nybegynder
18. september 2005 - 17:08 #13
Nå men anyway roenvig points er dine :-D

Lig et svar....
Avatar billede roenving Novice
18. september 2005 - 17:09 #14
Nej, du skal lave valide tabeller !-)

-- derfor skal du slet ikke bruge tabelceller i anden række, men f.eks. divs:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Adobe GoLive">
        <title>Untitled Page</title>
    </head>

    <body>
<script type="text/javascript">
  var oldWin;
  window.onload = function(){
    oldWin = document.getElementById('win1');
  }
  function showWin(win){
    oldWin.style.display='none';
    oldWin = document.getElementById(win);
    oldWin.style.display='block';
  }
</script>
        <table cellspacing="3" cellpadding="2">
            <tr style="background-color:#d6d6d6;">
                <td id="menu1"><a href="#" onclick="showWin('win1');return false;">Generelt</a></td>
                <td id="menu2"><a href="#" onclick="showWin('win2');">Data</a></td>
                <td id="menu3"><a href="#" onclick="showWin('win3');">Pris</a></td>
                <td id="menu4"><a href="#" onclick="showWin('win4');">Billeder</a></td>
                <td id="menu5"><a href="#" onclick="showWin('win5');">Varianter</a></td>
                <td id="menu6"><a href="#" onclick="showWin('win6');">Kategorier</a></td>
                <td id="menu7"><a href="#" onclick="showWin('win7');">Relaterede varer</a></td>
            </tr>
        </table>
       
        <table cellspacing="3" cellpadding="2">
            <tr style="background-color:#d6d6d6;">
                <td colspan="7">
                <div id="win1" style="display:block;width:350px;height:150px;">vindue 1</div>
                <div id="win2" style="display:none;width:350px;height:150px;">vindue 2</div>
                <div id="win3" style="display:none;width:350px;height:150px;">vindue 3</div>
                <div id="win4" style="display:none;width:350px;height:150px;">vindue 4</div>
                <div id="win5" style="display:none;width:350px;height:150px;">vindue 5</div>
                <div id="win6" style="display:none;width:350px;height:150px;">vindue 6</div>
                <div id="win7" style="display:none;width:350px;height:150px;">vindue 7</div></td>
            </tr>
        </table>
    </body>

</html>
Avatar billede roenving Novice
18. september 2005 - 17:09 #15
Velbekomme '-)
Avatar billede krydset Nybegynder
18. september 2005 - 17:13 #16
Okay, hvor skulle jeg osse lige vide fra man byggede det op den måde.... :-D Men det ved jeg da nu så, takker for det :-D
Avatar billede roenving Novice
18. september 2005 - 17:15 #17
-- 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