Avatar billede rbl Praktikant
21. oktober 2001 - 21:37 Der er 3 kommentarer og
1 løsning

initialisering af træstruktur.

Jeg har fundet en træstruktur, jeg skal bruge på en hjemmeside. Der er bare et problem: Hver gang jeg loader træet, er det ekspanderet (dvs. hele træet er synligt). Jeg skal altså have fundet en måde, så træet er \"kollapset\", så man kun kan se første niveau.

Det ville jo også være lidt irriterende, hvis hele træet i stifinder var synligt fra starten :-).

Træet kan ses her:
http://msdn.microsoft.com/workshop/samples/components/htc/toc/toc-ie4.htm

(Du kan få kildekoden ved højreklik)
Avatar billede jakoba Nybegynder
21. oktober 2001 - 21:57 #1
oppe i toppen af scriptet omskriver du de to funktioner
  init()  og  expandCollapse()

til disse 3:

function init() {
  var coll = document.all.tags(\"LI\");
  if (coll != null) {   
      for (i=0; i < coll.length; i++)
        if (coll[i].className == \"COLLAPSING\") {
          coll[i].style.listStyleImage = \"url(\'/workshop/graphics/minus.gif\')\";
          expCol( coll[i] );              // NY collapser den sektion
        }
  }
}

function expandCollapse () { // kollaps / expander hvor der klikkes.
  expCol( event.srcElement );
}

function expCol( oSource ) {  // kollaps / expander den givne sektion
  if (oSource.className != \"COLLAPSING\")
      return;
  oChild = document.all(oSource.getAttribute(\'CHILD\', false));
  if (oChild.style.display==\'none\') { 
    oChild.style.display=\'\';
    oSource.style.listStyleImage=\'url(/workshop/graphics/minus.gif)\'
  } else {
    oChild.style.display=\'none\';
    oSource.style.listStyleImage=\'url(/workshop/graphics/plus.gif)\'
  }
}

PS: det er den IE-only\'ste menu jeg kænge har set, duer ikke engang i NS6.

mvh JakobA
Avatar billede rbl Praktikant
21. oktober 2001 - 23:22 #2
Tak, det virker :-)

Ja, jeg ved godt det kun virker til IE, men det er også meningen.
Avatar billede olebole Juniormester
22. oktober 2001 - 05:03 #3
<ole>
Hehe ....lidt sjovt, at en menu på et MS-site ikke engang overholder MS\' egen \'standard\' for getAttribute() - som jo er deres egen private metode  :)

Prøv iøvrigt, om ikke:
  document.all(oSource.CHILD);
fungerer ligeså godt - og formodentlig er ikke så lidt hurtigere  ;o)
/mvh
</bole>
Avatar billede olebole Juniormester
22. oktober 2001 - 05:07 #4
Hov .....de kan zq ikke engang finde ud af at anvende de rigtige parenteser!  *LoooL*
Det hedder:
  document.all[oSource.CHILD];
...det er jo et array, vi er nede og kikke i.
Nå, men de kan da være glade for, at de har gjort IE så fejl-tollerant, at den forstår deres egen skod-kode! Hvem ved ......måske er det netop derfor  =oD
/mvh
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

IT-JOB

Capgemini Danmark A/S

AI/Data Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Specialister til Netværksoperations til Forsvarets nye Digitale Backbone

Politiets Efterretningstjeneste

IT Sikkerhedsarkitekt i PET