Avatar billede dkjohn Nybegynder
02. november 2000 - 23:59 Der er 3 kommentarer og
2 løsninger

Hvad går galt her?

Indrømmet, jeg er ikke nogen haj til javascript, faktisk er jeg meget dårlig til det, men min logik siger mig at nedestående kode burde virke. Det gør det bare ikke :-(
Jeg får ingen fejlmeddelelser med der skiftes ikke mellem de 2 layers som der burde. Hvem kan sige mig hvorfor ?

<html>

<head>
<script language=\"javascript\">
var harvist;
var vishvad=\"1\";
function vis(hvad) {
harvist=vishvad;
vishvad=hvad;
harvist.visibility=\"hidden\";
vishvad.visibility=\"visible\";
}
</script>

<title>Ny side 1</title>
</head>

<body>

<div id=\"menu\" style=\"position:absolute;left:30; top:25;background-color;#aabbcc;visibility:visible;\">
<a Onclick=\"vis(\'1\')\" style=\"cursor:hand\">1</a><br>
<a Onclick=\"vis(\'2\')\" style=\"cursor:hand;\">2</a><br>
</div>
<div id=\"1\" style=\"position:absolute;left:30;top:100;background-color:#ff00ff;visibility:visible;\">
<P>Dette er layer nummer 1</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>
<div id=\"2\" style=\"position:absolute;left:30;top:100;background-color:#0000ff;visibility:hidden;\">
<p>Dette er layer nummer 2<p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>

</body>

</html>
Avatar billede el_gnu Nybegynder
03. november 2000 - 08:29 #1
hvis du bruger IE skal du sætte bruge lagenes style objekt. Dvs. lagnavn.style.visibility = \'hidden\';.
Ved NS skal du tage højde for at objekter indeholdt i document ikke er globale. Dvs. document.lagnavn.visibility = \'hidden\';

Så dit script omskrevet kunne være:

var harvist;
var vishvad;
(document.layers) ? vishvad=document.1 : vishvad = 1.style;

function vis(hvad) {
if (document.layers)
  obj = eval(\'document.\' + hvad);
else
  obj = eval(hvad + \'.style\');
harvist=vishvad;
vishvad=obj;

harvist.visibility=\"hidden\";
vishvad.visibility=\"visible\";
}
Avatar billede joni@vordb Nybegynder
03. november 2000 - 09:22 #2
Hvis jeg erstatter dit script med det jeg har lavet giver den fejl.

linie 8, tegn 37, tegnet \":\" var ventet
linie 8 er
(document.layers) ? vishvad=document.1 : vishvad = 1.style;

//john
Avatar billede el_gnu Nybegynder
03. november 2000 - 14:34 #3
hmm, måske nogle parenteser ville hjælpe:

(document.layers) ? (vishvad=document.1) : (vishvad = 1.style);
Avatar billede dkjohn Nybegynder
06. november 2000 - 13:41 #4
Desvære det giver stadig fejl.

Jeg dropper spørgsmålet, og vender tilbage når jeg får bedre tid til at følge op på det.

//john
Avatar billede el_gnu Nybegynder
06. november 2000 - 15:05 #5
by the way, jeg tror ikke variable (og dermed indirekte <div id) må starte med et tal.
Jeg tror at du er nødt til at kalde din <div> tags for, f.eks. div1 og div2
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