Avatar billede madshenrik Nybegynder
23. oktober 2000 - 22:58 Der er 1 kommentar og
1 løsning

Problem med treeview

Jeg har et problem med et treeview lavet i dhtml og javascript. Problemet ligger i følgende, javascriptet der styrer hvornår træet skal folde ud og ind er programeret således at det reagere på når der trykkes på et srcElement på siden. Jeg har imidlertidig fået det til at fungere med at man også kan trykke på teksten men der er et problem de billeder der er plus og minus ikke følger med.
Her er scriptet

<script language=\"JavaScript\">
function clickTree()
{ var dest_id, origin, dest
  origin = window.event.srcElement
  if (origin.className == \"tree1_class\")
  { dest_id = origin.id  + \"_sub\"
   
    dest = document.all(dest_id)
    if (dest.style.display == \"none\")
      { dest.style.display = \"\"
        origin.src = \"minus.gif\" }
      else { dest.style.display = \"none\"
            origin.src = \"plus.gif\" }
  }

}
document.onclick = clickTree;
</script>

Denne span tag gør det muligt at få scriptet udført på tekst.

<span id=branch1_1 class=tree1_class>Hvem er vi?</span>

Men billederne skifter ikke, hvilket jeg finder mærkeligt da den udfører resten fint nok. Er der nogen der kan hjælpe.

Mads
Avatar billede olebole Juniormester
24. oktober 2000 - 02:06 #1
<ole>
Du skifter sourcen ud på event-elementet. Det går fint, hvis elementet er et billede, men hvis det er et <span>, er du på span\'en! :oP

Hvis du vil skifte med det pågældende <span>, kan du lave følgende funktion:

<script language=\"JavaScript\">
<!--

function clickTree() {
    var dest_id, origin, dest
    origin = window.event.srcElement;
    if (origin.className == \"tree1_class\") {
        dest_id = origin.id  + \"_sub\";
        dest = document.all(dest_id);
        if (dest.style.display == \"none\") {
            dest.style.display = \"\"
            document.images[origin.id].src = \"minus.gif\"
        } else {
            dest.style.display = \"none\"
            document.images[origin.id].src = \"plus.gif\"
        }
    }
}
document.onclick = clickTree;

//-->
</script>

...så kan du skrive dine kald og billedet (eller lag, eller hvad du nu viser og skjuler) sådan her:

    <img src=\"plus.gif\" class=\"tree1_class\" id=\"branch1_1\"><br>
    <a href=\"java script://\" class=\"tree1_class\" id=\"branch1_1\">TEST HER</a><br>
    <span class=\"tree1_class\" id=\"branch1_1\">TEST HER</span><br>
   
    <img src=\"onOff.gif\" id=\"branch1_1_sub\" style=\"display:none\">

/mvh
</bole>
Avatar billede madshenrik Nybegynder
24. oktober 2000 - 22:05 #2
Mange tak for hjælpen.
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