Avatar billede glaede.dk Nybegynder
05. februar 2001 - 20:49 Der er 8 kommentarer og
3 løsninger

Skift text ?

Hej!

Kan man lave så når man klikker op \"Åben\" (textlink) så skifter den til \"Luk\" og funktionen også skifter ?
Fordi jeg er igang med at lave så når man klikker på \"Åben\" så kommer der en box frem...ik en alert box, men noget \"overlib\" hedder koden vidst. Og så skulle den gerne skifte til \"Luk\" ?

Nogen der har nogen ideer til det ?

Mvh Glaede.dk
Avatar billede jakoba Nybegynder
05. februar 2001 - 21:33 #1
Det er ret nemt at lave med en knap:

<script language=\'javascript\'> <!--

var lukket = true;
function lukOpOgI (knap) {
  if ( lukket ) {
    // her indsætter du din luk-op kode
    // fulgt af
    knap.value = \" luk \";
    lukket = false;
  } else {
    // her indsætter du din luk-i kode
    // fulgt af
    knap.value = \"&aring;ben\";
    lukket = true;
  }
}; //end lukOpOgI (button)

</script>

Ovenstående skrives et sted imellem <head> og </head> i din html fil
Nede i teksten laver du knappen med:

<form action=\'java script:void(0)\'>
<input type=\'button\' value=\'&aring;ben\' onclick=\'lukOpOgI(this);\'>
</form>

mvh JakobA
Avatar billede r_brejnholt Nybegynder
07. februar 2001 - 20:39 #2
- oder som et billedeskift vel?
<script>
function doit() {
if (åben) {
document.bil1.src=\"luk.gif\";
}
else {
document.bil1.src=\"open.gif\";
}
}
</script>
<img src=\"open.gif\" name=\"bil1\" onclick=\"doit()\">

Et skift af et normalt tekstlink på sin side kan vel kun laves vha. dhtml el. lign? - altså medmindre man kringler sig uden om ved at få en form-input boks, eller knap til at \'ligne\' brødtekst...
Avatar billede engrob Nybegynder
08. februar 2001 - 17:30 #3
Han har jo skrevet \'textlink\' og der er ikke særlig meget tekstlink over det der...
Avatar billede r_brejnholt Nybegynder
08. februar 2001 - 23:58 #4
nåja, når du nu absolut skal blande dig engrob :)
- men jeg synes da jeg har skrevet, at der ikke rigtig er nogen andre muligheder end \'als gesagt\'.
Avatar billede engrob Nybegynder
09. februar 2001 - 16:00 #5
Jeg tror faktisk godt man kan, men jeg ved bare ikke hvordan. Jeg ville ellers gerne finde ud af det :)
Avatar billede r_brejnholt Nybegynder
10. februar 2001 - 22:56 #6
- OK, hvis man benytter sig af noget css-halløj, kan det måske laves:

<script language=\"JavaScript\">
function swaplinks(nr) {
if (document.layers) {
//lidt cross-browser til netscape narkomaner
}
elseif (document.all) { //hvis IE og layers = ok
if (nr==1) {
link1.visibility=hidden;
link2.visibility=show;
dokommando1();
}
else {
link2.visibility=hidden;
link1.visibility=show;
dokommando2();
}
}
}
function dokommando1() {
alert(\"Hej du har klikket på den ene\");
//lav det du skal til kommando 1
}
function dokommando2() {
alert(\"Hej du har klikket på den anden\");
}
</script>
<html>
<body>
<p>En helt masse tekst..</p><bR><br>
Her er linket: <div id=\"link1\" Style=\'position:relative; visibility:hidden\' onclick=\"swaplinks(1)\">Tekst1</div>
<div id=\"link2\" Style=\'position:relative\' onclick=\"swaplinks(2)\">Tekst2</div>
<br><br>En helt masse sluttekst
</body>
</html>

- jeg ved ikke om det virker, jeg er ikke nogen ræv til dhtml, men du ka\' jo prøve...
PS: Det skal i hvertfald tilpasse til Netscape brugere, jeg har ikke lige de snu koder ved hånden.
Avatar billede engrob Nybegynder
18. februar 2001 - 15:19 #7
Med lidt hjælp fra jakoba og dansteinman er det lykkedes mig at lave dette, der virker i NS4, NS6, IE5 og IE4.

<html>
<head>
<script language=\"Javascript\">
<!--
ns4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;
dom = (document.getElementById)? true:false;

function layerWrite(id,nestref,text) {
    if (ns4) {
        var lyr = (nestref)? eval(\'document.\'+nestref+\'.document.\'+id+\'.document\') : document.layers[id].document
        lyr.open()
        lyr.write(text)
        lyr.close()
    }
    else if (ie4) document.all[id].innerHTML = text
    else if (dom) document.getElementById(id).innerHTML = text
}

var lukket = true;
function lukOpOgI() {
  if (lukket) {
    // her indsætter du din luk-op kode
    // fulgt af
    layerWrite(\'test\',null,\'<a href=\"java script:lukOpOgI();\">Luk</a>\');
    lukket = false;
  } else {
    // her indsætter du din luk-i kode
    // fulgt af
    layerWrite(\'test\',null,\'<a href=\"java script:lukOpOgI();\">&Aring;ben</a>\');
    lukket = true;
  }
}; //end lukOpOgI (button)


// -->
</script>
</head>
<body>

<div id=\"test\" style=\"position:absolute; top:100; left:300;\"><a href=\"java script:lukOpOgI();\">&Aring;ben</a></div>

</body>
</html>
Avatar billede r_brejnholt Nybegynder
18. februar 2001 - 20:57 #8
->engrob
Jaja, det kan da godt være....
- men drop din eksakte positionering \'top:100;
left:300\' og skriv \'position:relative\' i stedet for \'position:absolute\'
-  medmindre altså alt andet på siden også bruger css - ellers er det for besværligt...
- den bliver jo bare placeret et bestemt sted på skærmen.
Avatar billede r_brejnholt Nybegynder
18. februar 2001 - 20:59 #9
- hvis du gør det, fungerer dit stylesheet som næsten som almindelig tekst på skærmen :)
Avatar billede engrob Nybegynder
22. februar 2001 - 00:37 #10
Undskyld, undskyld...

Du viste nok bare ikke det ikke virker i NS4, men det gør ikke noget. Du er ikke den eneste.

Men hvis glaede kan leve med at det ikke virker i NS4 så kan han/hun og så bare skrive <div id=\"test\"><a href=\"java script:lukOpOgI();\">&Aring;ben</a></div>
og lægge det hvor som helst på siden...

Avatar billede glaede.dk Nybegynder
24. februar 2001 - 23:33 #11
ehh.. damn havde glemt jeg havde det her spørgsmål :o(

- Dvs. at jeg sårn set ik´ skal bruge det alligevel, men nogen skal jo ha´ de points... finder jeg lige ud af...
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