Avatar billede andreasnvj Nybegynder
27. marts 2007 - 21:26 Der er 8 kommentarer og
1 løsning

Vis/skjul div ved 'betingelser i toggle-funktion'

Jeg er rigtig glad for nedenstående toggle-funktion. Jeg har tillært mig visse java-kundskaber under implementeringen af den, men er kommet til kort, nu hvor jeg vil udvide den.

se den i brug her: <a href="http://inpleno.dk/rasmus/" target="blank">inpleno.dk/rasmus</a>

Hvordan når jeg frem til følgende:
Når alle div's i menuen er lukket (display:none), skal en 'ekstern' div vises (display:block), og når en af div'ene vises, skal den eksterne div skjules. I kan i kildekoden på ovenstående link se, at div'en 'billede' pt er sat ind, men er skjult (display:none).

her er koden:

var oldS = null;
function toggle(id) { 
  var s = document.getElementById(id).style;
  if (oldS != null && oldS != s) {
    oldS.display = "none"; 
  } 
  s.display = (s.display == "block" ? "none" : "block");
  oldS = s;
}

var oldS2 = null; 
function toggle2(id) { 
  var s = document.getElementById(id).style;
  if (oldS2 != null && oldS2 != s) {
    oldS2.display = "none"; 
  }
  var s = document.getElementById(id).style;
  s.display = (s.display == "block" ? "none" : "block"); 
  oldS2 = s; 
}

Jeg glæder mig til at høre fra jer.

Andreas
Avatar billede roenving Novice
27. marts 2007 - 21:39 #1
Er det ikke bare til sidst i hver toggle-funktion:

  if(oldS.display=="none"){
    oldS = document.getElementById("billede").style;
    oldS.display = "block";
  }
Avatar billede andreasnvj Nybegynder
27. marts 2007 - 21:58 #2
Hvor er det vildt fascinerende at det kan gøres så enkelt og hurtigt!!! Det funger! respekt! Jeg har brugt to dage på at forsøge at gennemskue det. Jeg har meget at lære endnu.

Hvad hvis jeg vil have den til at vises som udgangspunkt?

Og en ting mere: mine undermenuer ved 'produktioner' vil jeg gerne have til at lukkes, når når jeg lukker hovedemnerne, kan du nemt hjælpe mig med det?
Avatar billede roenving Novice
27. marts 2007 - 22:15 #3
Tjah, du kan jo indsætte dette nederst i toggle-funktionen:

var prod = document.getElementById("produktioner");
if(prod.style.display == "none"){
  var elms = prod.getElementsByTagName("div");
  for(i=0,im=elms.length;im>i;i++){
    if(elms[i].className.indexOf("underrubrik")>-1)
      elms[i].style.display = "none";
  }
}
Avatar billede andreasnvj Nybegynder
27. marts 2007 - 22:22 #4
Yes, det virker bare! I første hug!

Kan du også trylle min 'billede'-div frem når siden åbnes, eller strammer jeg den nu?

Hvordan giver jeg dig dine allerede nu meget fortjente point?
Avatar billede roenving Novice
27. marts 2007 - 22:30 #5
window.onload = function(){
  oldS = document.getElementById("billede");
  oldS2 = document.getElementById("billede2");
}

-- og så fjerner du bare display:none; fra dine style-rules for de to elementer !-)

Velbekomme '-)
Avatar billede andreasnvj Nybegynder
27. marts 2007 - 22:39 #6
Hvor skal den hen?
Avatar billede andreasnvj Nybegynder
28. marts 2007 - 00:07 #7
fandt ud af en alternativ løsning til sidste problem. Stor respekt og mange TAK!
Avatar billede roenving Novice
28. marts 2007 - 00:55 #8
Huak at afslutte spørgsmålet ved at markere et navn i boksen til venstre og trykke på Acceptér !-)
Avatar billede roenving Novice
30. marts 2007 - 12:18 #9
-- og tak 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