Avatar billede hhlundgaard Nybegynder
21. august 2003 - 09:25 Der er 11 kommentarer og
1 løsning

Java træ menu som skal lukke automatisk

Jeg har en javascript menu som åbner foldere ligesom windows stifinder, jeg savner bare at når man ex er inde i område 1 og går videre ind i område 2 så ville jeg gerne at den automatisk lukker område 1.

Den nederste script del er bare til cookie således at hvis man kommer tilbage til menuen så er det område man have åbnet stadig åben.

Håber der er en der kan lave det JS jeg mangler for at den lukke automatisk...

koden.html

<HTML>
<HEAD>
<style>
<!--
#foldheader{cursor:pointer;cursor:hand ; font-weight:bold ;
list-style-image:url(fold.gif)}
#foldinglist{list-style-image:url(list.gif)}
//-->
</style>
<script language="JavaScript1.2">
<!--

//Smart Folding Menu tree- By Dynamic Drive (rewritten 03/03/02)
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use

var head="display:''"
img1=new Image()
img1.src="fold.gif"
img2=new Image()
img2.src="open.gif"

var ns6=document.getElementById&&!document.all
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1

function checkcontained(e){
var iscontained=0
cur=ns6? e.target : event.srcElement
i=0
if (cur.id=="foldheader")
iscontained=1
else
while (ns6&&cur.parentNode||(ie4&&cur.parentElement)){
if (cur.id=="foldheader"||cur.id=="foldinglist"){
iscontained=(cur.id=="foldheader")? 1 : 0
break
}
cur=ns6? cur.parentNode : cur.parentElement
}

if (iscontained){
var foldercontent=ns6? cur.nextSibling.nextSibling : cur.all.tags("UL")[0]
if (foldercontent.style.display=="none"){
foldercontent.style.display=""
cur.style.listStyleImage="url(open.gif)"
}
else{
foldercontent.style.display="none"
cur.style.listStyleImage="url(fold.gif)"
}
}
}

if (ie4||ns6)
document.onclick=checkcontained

//-->
</script>
</HEAD>
<BODY>
<center>
    <a href="index.php?site=viden2"><b>Se 2. udgave af Videns dokumentvisningen!</b></a>
    <br><br>
</center>

<TABLE width="90%" border="0">
    <tr>
        <td colspan="2" align="center">
            <b>Videns Dokumenter.</b>
        </td>
    </tr>
    <tr>
        <td width="65%">
            <ul>
              <li id="foldheader">1. Område</li>
              <ul id="foldinglist" style="display:none" style=&{head};>
                  <li><a href="vores_videns_dokumenter.html">Dokument 1</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 2</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 3</a></li>
              </ul>

              <li id="foldheader">2. Område</li>
              <ul id="foldinglist" style="display:none" style=&{head};>
                  <li><a href="vores_videns_dokumenter.html">Dokument 1</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 2</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 3</a></li>
              </ul>

              <li id="foldheader">3. Område</li>
              <ul id="foldinglist" style="display:none" style=&{head};>
                  <li><a href="vores_videns_dokumenter.html">Dokument 1</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 2</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 3</a></li>
              </ul>
           
              <li id="foldheader">4. Område</li>
              <ul id="foldinglist" style="display:none" style=&{head};>
                  <li><a href="vores_videns_dokumenter.html">Dokument 1</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 2</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 3</a></li>
              </ul>

              <li id="foldheader">5. Område</li>
              <ul id="foldinglist" style="display:none" style=&{head};>
                  <li><a href="vores_videns_dokumenter.html">Dokument 1</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 2</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 3</a></li>
              </ul>

              <li id="foldheader">6. Område</li>
              <ul id="foldinglist" style="display:none" style=&{head};>
                  <li><a href="vores_videns_dokumenter.html">Dokument 1</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 2</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 3</a></li>
                  <li><a href="vores_videns_dokumenter.html">Dokument 4</a></li>
                  <li id="foldheader">6.1. Område</li>
                  <ul id="foldinglist" style="display:none" style=&{head};>
                    <li><a href="vores_videns_dokumenter.html">Dokument 1</a></li>
                    <li id="foldheader">6.1.1. Område</li>
                    <ul id="foldinglist" style="display:none" style=&{head};>
                    <li><a href="vores_videns_dokumenter.html">Dokument 2</a></li>
                  </ul>
              </ul>
            </ul>
        </td>
        <td style="vertical-align: top;">
            <input type="text" size="25">
            <input type="button" value="Søg">
        </td>
    </tr>

</TABLE>

<script language="JavaScript1.2">
<!--

function get_cookie(Name) {
//Get cookie routine by Shelley Powers
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search)
    // if cookie exists
    if (offset != -1) {
      offset += search.length
      // set index of beginning of value
      end = document.cookie.indexOf(";", offset);
      // set index of end of cookie value
      if (end == -1) end = document.cookie.length;
      returnvalue=unescape(document.cookie.substring(offset, end))
      }
  }
  return returnvalue;
}

var foldercontentarray=new Array()
var c=0

if (ns6){
for (i=0;i<document.getElementsByTagName("UL").length;i++){
if (document.getElementsByTagName("UL")[i].id=="foldinglist"){
foldercontentarray[c]=document.getElementsByTagName("UL")[i]
c++
}
}
}

if (get_cookie(window.location.pathname) != ''){
  var openresults=get_cookie(window.location.pathname).split(" ")
  for (i=0 ; i < openresults.length ; i++){
    if (ns6){
    foldercontentarray[openresults[i]].style.display=''
    foldercontentarray[openresults[i]].previousSibling.previousSibling.style.listStyleImage="url(open.gif)"
    }
    else{
    foldinglist[openresults[i]].style.display=''
    document.all[foldinglist[openresults[i]].sourceIndex -1].style.listStyleImage="url(open.gif)"
    }
  }
}

if (ns6||ie4){
var nodelength=ns6? c-1 : foldinglist.length-1
var nodes=new Array(nodelength)
var openones=''
}

function checkit(){
  for (i=0 ; i <= nodelength ; i++){
    if ((ns6&&foldercontentarray[i].style.display=='')||(ie4&&foldinglist[i].style.display==''))
      openones=openones + " " + i
  }
  document.cookie=window.location.pathname+"="+openones
}

if (ns6||ie4)
window.onunload=checkit
//-->
</script>

</BODY>
</HTML>
Avatar billede basicq Nybegynder
21. august 2003 - 09:32 #1
Avatar billede hhlundgaard Nybegynder
21. august 2003 - 09:36 #2
jow jow den kan da det jeg ønsker, men den gemmer ikke sådan så man kommer tilbage i samme menu hvis man kommer tilbage senere, jeg har selv en anden menu som også lukker automatisk, men der kan man ikke lave undermenuer.
Avatar billede basicq Nybegynder
21. august 2003 - 09:40 #3
så må du bruge cookies
Avatar billede hhlundgaard Nybegynder
21. august 2003 - 09:45 #4
Ja, men det gør jeg jo allerede, og det jeg vil have er en der kan ændre mit script så det auto lukker andre menuer end den man er inde i. jeg vil ikke have et andet script.
Avatar billede basicq Nybegynder
21. august 2003 - 09:54 #5
ok, så held og lykke med dit script. :-)
Avatar billede hhlundgaard Nybegynder
21. august 2003 - 10:03 #6
jo tak, jeg venter....
Avatar billede roenving Novice
21. august 2003 - 14:35 #7
Har lige kigget lidt på den, og selvfølgelig kan det lade sig gøre, dog skal man ret langt omkring for at klare nest-strukturen, så den vil jeg lure på og komme med et bud på senere ...

-- og så er der jo faktisk ulovlig html-kode ved at id (som _skal_ være unikt efter standarderne !-) bruges flere gange, det kunne bare klares med en class !o]

-- og hvis det var en class ville en fornuftig brug af id gøre det *mange* gange lettere at udføre det nummer du vil have ...
Avatar billede hhlundgaard Nybegynder
21. august 2003 - 17:03 #8
jamen jeg er åben for at få lavet hele koden om hvis det er?
jeg er ikke selv den største haj til javascript.
Avatar billede roenving Novice
21. august 2003 - 17:09 #9
Jeg vil prøve at kigge på det, men desværre nok ikke lige snart, men sikkert imorgen !-)
Avatar billede hhlundgaard Nybegynder
21. august 2003 - 18:10 #10
det er bare OK.
Avatar billede hhlundgaard Nybegynder
30. august 2003 - 15:34 #11
lukker i morgen hvis der ikke sker noget.
Avatar billede hhlundgaard Nybegynder
31. august 2003 - 18:25 #12
...
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