Avatar billede krogstrup Nybegynder
04. juni 2001 - 13:22 Der er 15 kommentarer og
1 løsning

Skjul/vis lag

Jeg har et script med 2 funktioner:

<SCRIPT LANGUAGE=\"JavaScript\">
n=document.layers;
ie=document.all;

if (n) {
    visible=\'show\';
    hidden=\'hide\'; }

else if (ie) {
    visible=\'visible\';
    hidden=\'hidden\';}

function vis_lag(temp){
    var obj = eval(\"document.\" + temp);
    if(n) {obj.visibility=visible;}
    else if (ie) {document.all(temp).style.visibility=visible;}
    }

function skjul_lag(temp){
    var obj = eval(\"document.\" + temp);
    if(n) {obj.visibility=hidden;}
    else if (ie) {document.all(temp).style.visibility=hidden;}
}
</SCRIPT>


Jeg har brug for en ny funktion:

<a href=\"java script:hideORshow(mitLag);\">Klik her</a>

Når der klikkes på linket skal funktionen selv undersøge om laget pt. vises eller skjules. Hvis laget er skjult skal det vises og hvis det er synligt skal det skjules !
Avatar billede netsrac Praktikant
04. juni 2001 - 13:28 #1
n=document.layers;
ie=document.all;

if (n) {
    visible=\'show\';
    hidden=\'hide\'; }

else if (ie) {
    visible=\'visible\';
    hidden=\'hidden\';}

function hideORshow(temp)
{
    var obj = eval(\"document.\" + temp);
    if(n)
    {
      if (obj.visibility == hidden)
          obj.visibility=visible;
      else
          obj.visibility=hidden;
    }
    else if (ie)
    {
      if (document.all(temp).style.visibility == hidden)
          document.all(temp).style.visibility=visible;
      else
          document.all(temp).style.visibility=hidden;
    }
}
Avatar billede krogstrup Nybegynder
04. juni 2001 - 13:29 #2
Forresten:

Når jeg skjuler en tekst nu - hvorfor rykkes teksten under mit skjulte lag så ikke opad ?
Avatar billede netsrac Praktikant
04. juni 2001 - 13:31 #3
Fordi laget stadig er der, det er jo bare skjult.
Avatar billede krogstrup Nybegynder
04. juni 2001 - 13:31 #4
Hmmm, er det ikke muligt at få eventuelle lag længere nede til at rykke opad... ?
Avatar billede krogstrup Nybegynder
04. juni 2001 - 13:32 #5
Det er vel det der sker i typiske DHTML træ-menuer !!
Avatar billede krogstrup Nybegynder
04. juni 2001 - 13:32 #6
Jeg er i gang med at lave en \"stifinder\" lignende menu...
Avatar billede netsrac Praktikant
04. juni 2001 - 13:38 #7
Du kan vel bruge .moveTo(0,0) f.eks.
Avatar billede netsrac Praktikant
04. juni 2001 - 13:40 #8
.moveAbove(lag)
.moveBelow(lag)
.moveTo(x,y)

Du kan vel bruge en af de 3 metoder.
Avatar billede krogstrup Nybegynder
04. juni 2001 - 13:45 #9
Hvis jeg bruger .moveTo(x,y) skal jeg jo når jeg ønsker at vise mit lag igen flytte det tilbage. Problemet er bare at jeg ikke kender positionen, eftersom lagene ikke er positioneret absolut men relativt ... ?!?
Avatar billede netsrac Praktikant
04. juni 2001 - 13:50 #10
Det ved jeg faktisk ikke hvordan man kommer ud over.
Avatar billede krogstrup Nybegynder
04. juni 2001 - 13:54 #11
Helt i orden - jeg takker for hjælpen :-)
Avatar billede netsrac Praktikant
04. juni 2001 - 14:21 #12
Så lidt :-)
Avatar billede krogstrup Nybegynder
04. juni 2001 - 14:24 #13
Du får lige min DEMO kode her - hvis du skulle få lyst til at prøve på at knække nøden på et tidspunkt, er min kode her:

Jeg er selvfølgelig villig til at uddele flere points for en løsning på problemet :-)


<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">

<html>
<head>
    <title>Test</title>
<script language=\"JavaScript\">
n=document.layers;
ie=document.all;

if (n) {
    visible=\'show\';
    hidden=\'hide\'; }

else if (ie) {
    visible=\'visible\';
    hidden=\'hidden\';}

function hideORshow(temp)
{
    var obj = eval(\"document.\" + temp);
    if(n)
    {
      if (obj.visibility == hidden)
          obj.visibility=visible;
      else
          obj.visibility=hidden;
    }
    else if (ie)
    {
      if (document.all(temp).style.visibility == hidden)
          document.all(temp).style.visibility=visible;
      else
          document.all(temp).style.visibility=hidden;
    }
}

</script>
</head>

<body>

<a href=\"java script:hideORshow(\'lag1\')\">Hovedpunkt 1</a><br>
<div id=\"lag1\">
Underpunkt 1<br>
Underpunkt 2
</div>
Hovedpunkt 2


</body>
</html>
Avatar billede olebole Juniormester
05. juni 2001 - 23:31 #14
<ole>
krogstrup >> Hvis du lægger dine lag relativt, er du ikke ude i noget X-browser...det vil NS4.x jo ikke høre tale om, da den kun kan adressere absolut positionerede lag.
Hvis du er ude i noget admin-modul-agtig-noget - og det kunne jeg da forestille mig - kan du jo mere eller mindre selv bestemme browseren. Så kan du lave noget med en tabel, hvor du giver de enkelte rækker og/eller celler en id. Nu kan du kalde dem med:
document.all[id] - i IE4.x og
document.getElementById(id) - i IE5+ og NS6+
Så kan du veksle mellem at sætte deres \'style.display\' til henholdsvis \'none\' og \'block\', så skiftevis forsvinder (...ikke bare skjules) de og kommer til syne. Altså:
document.getElementById(\"buller\").style.display = \"none\";
document.getElementById(\"buller\").style.display = \"block\";

Hvis det er noget rigtig stifinder-noget (...skulle vel aldrig være noget til et ContentManagementSystem...?), må du godt kontakte mig, da jeg tror, jeg har noget, du kunne bruge.
I owe you one...remember...?  ;o)
/mvh
</bole>
Avatar billede krogstrup Nybegynder
06. juni 2001 - 08:40 #15
ole >>>

Hej Ole
Tak for hjælpen - som du kan se her:
http://www.eksperten.dk/spm/78745

Nåede jeg selv frem til løsningen med display=none for at løse problemet.

Men ja, det er til et contentManagementSystem - hvordan kunne du dog gætte det....?  hehe :-)
Avatar billede olebole Juniormester
06. juni 2001 - 13:03 #16
<clairvoiance>
Tjaahhh....hvordan mon...?  :o)
</clairvoiance>
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