Avatar billede dennism Nybegynder
01. september 2004 - 20:05 Der er 9 kommentarer og
1 løsning

Simpelt Javascript

Jeg har følgende kode:

<SCRIPT LANGUAGE=javascript>
function submenu(submenu) {
if (document.submenu.style.display = "none") {
document.submenu.style.display="block"
} else {
document.submenu.style.display="none"
}
}
</SCRIPT>

<a href="test.html" onClick="submenu('submenu01')">Link</a>

<div style="display: none;" id="submenu01">hej</div>

Jeg vil have lavet sådan, at når man trykker på linket, så bliver submenu01 "foldet" ud, hvis den ikke er foldet ud, og er den foldet ud, så skal den foldes ind.
Bemærk at man skulle kunne vælge en anden submenu i funktionen (her bruger jeg bare submenu01).

Hvad skal der ændres i min kode?
Avatar billede ldanielsen Nybegynder
01. september 2004 - 20:11 #1
Dette måske:

<SCRIPT LANGUAGE=javascript>
function submenu(submenu) {
var theDiv = document.getElementByID(submenu)
if (theDiv.style.display = "none") {
theDiv.style.display="block"
} else {
theDiv.style.display="none"
}
}
</SCRIPT>

<a href="test.html" onClick="submenu('submenu01')">Link</a>

<div style="display: none;" id="submenu01">hej</div>
Avatar billede ldanielsen Nybegynder
01. september 2004 - 20:16 #2
UPS to små fejl, nu er det testet:

<SCRIPT LANGUAGE=javascript>
function submenu(submenu) {
var theDiv = document.getElementById(submenu)
if (theDiv.style.display == "none") {
theDiv.style.display="block"
} else {
theDiv.style.display="none"
}
}
</SCRIPT>

<a href="java script:submenu('submenu01')">Link</a>

<div style="display: none;" id="submenu01">hej</div>

eller kortere;

<SCRIPT LANGUAGE=javascript>
function submenu(submenu) {
var theDiv = document.getElementById(submenu)
theDiv.style.display = (theDiv.style.display == "block") ? "none" : "block";
}
</SCRIPT>

<a href="java script:submenu('submenu01')">Link</a>

<div style="display: none;" id="submenu01">hej</div>
Avatar billede dennism Nybegynder
01. september 2004 - 20:16 #3
Hmm.. jeg får en fejl i linie 7, som indeholder:
function submenu(submenu) {

HVad kan det skyldes?
Avatar billede grunken Nybegynder
01. september 2004 - 20:20 #4
<script type="text/javascript">
function submenu(e) {
e = document.getElementById(e)
e.style.display = (e.style.display=="block")?"none":"block"
}
</script>

<a href="#" onClick="submenu('submenu01')">Link</a>

<div style="display: none;" id="submenu01">hej</div>
Avatar billede ldanielsen Nybegynder
01. september 2004 - 20:25 #5
Fejl? det forstår jeg ikke, er der andet i dokumentet? Må vi se det hele?

grunken >
<a href="" onclick="submenu('submenu01'); return false;">
return false, hvis du ikke vil have at den skal følge linket
Avatar billede dennism Nybegynder
01. september 2004 - 20:28 #6
ldanielsen >>

Tusind tak, det virker.
Kan du fortælle mig, hvordan jeg gør sådan, at linket i <a> også bliver åbnet når man trykker?

Gider du forklare denne linie med ord:
theDiv.style.display = (theDiv.style.display == "block") ? "none" : "block";

På forhånd tak.
Avatar billede thb Nybegynder
01. september 2004 - 20:50 #7
Linie gør at theDiv.style.display bliver sat til enten "none" eller "block" alt efter om theDiv.style.display == "block" er sand eller falsk.

Dvs. at theDiv.style.display bliver til "none" hvis sætningen i () er sand og til "block" hvis den er falsk..

Thomas
Avatar billede ldanielsen Nybegynder
01. september 2004 - 20:58 #8
<a href="siden.htm" onClick="submenu('submenu01')" target=frameNavn>Link</a>

hvis linket er i samme frame som menuen, så skal siden.htm vel åbnes i en anden frame, ellers får du jo ikke noget ud af at åbne menuen?? Derfor har jeg sat target på.

Denne construct:

var Variable = (condition) ? value_if_true : value_if_false;

er en lettere måde at skrive

if (condition){
  var Variable = value_if_true;
}else{
  var Variable = value_if_false;
  }

Forklarer det sagen? Jeg er ret vild med den, kunne godt bruge noget lignende i VBScript.
Avatar billede dennism Nybegynder
01. september 2004 - 21:57 #9
Jeg har fået løst mine problemer.
Tak for hjælpem ldanielsen. Smider du lige et svar?
Avatar billede ldanielsen Nybegynder
01. september 2004 - 22:12 #10
Ja, og tak for det
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