SitePoint Sponsor

User Tag List

Results 1 to 3 of 3
  1. #1
    SitePoint Addict isuru's Avatar
    Join Date
    Nov 2000
    Posts
    206
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I have got the following script for folding menu tree navigation script from http://www.dynamicdrive.com:

    Code:
    <style>
    <!--
    #foldheader{cursor:hand ; font-weight:bold ;
    list-style-image:url(fold.gif)}
    #foldinglist{list-style-image:url(list.gif)}
    //-->
    </style>
    <script language="JavaScript1.2">
    <!--
    /** 
     *  Based on Folding Menu Tree 
     *  Dynamic Drive (www.dynamicdrive.com)
     *  For full source code, installation instructions,
     *  100's more DHTML scripts, and Terms Of
     *  Use, visit dynamicdrive.com
     *
     *  Updated to support arbitrarily nested lists
     *  by Mark Quinn (mark@robocast.com) November 2nd 1998
     */
    
    var head="display:''"
    img1=new Image()
    img1.src="fold.gif"
    img2=new Image()
    img2.src="open.gif"
    
    function change(){
       if(!document.all)
          return
       if (event.srcElement.id=="foldheader") {
          var srcIndex = event.srcElement.sourceIndex
          var nested = document.all[srcIndex+1]
          if (nested.style.display=="none") {
             nested.style.display=''
             event.srcElement.style.listStyleImage="url(open.gif)"
          }
          else {
             nested.style.display="none"
             event.srcElement.style.listStyleImage="url(fold.gif)"
          }
       }
    }
    
    document.onclick=change
    
    //-->
    </script>
    
    <ul>
       <li id="foldheader">News</li>
       <ul id="foldinglist" style="display:none" style=&{head};>
          <li><a href="http://www.cnn.com">CNN</a></li>
          <li><a href="http://www.abcnews.com">ABC News</a></li>
          <li><a href="http://www.vancouversun.com">Vancouver Sun</a></li>
       </ul>
    
       <li id="foldheader">Games</li>
       <ul id="foldinglist" style="display:none" style=&{head};>
          <li><a href="http://www.gamespot.com">GameSpot</a></li>
          <li><a href="http://www.happypuppy.com">Happy Puppy</a></li>
          <li><a href="http://www.gamecenter.com">Game Center</a></li>
       </ul>
    
       <li id="foldheader">Software</li>
       <ul id="foldinglist" style="display:none" style=&{head};>
          <li><a href="http://www.download.com">outer 1</a></li>
          <li><a href="http://www.hotfiles.com">outer 2</a></li>
          <li id="foldheader">Nested</li>
          <ul id="foldinglist" style="display:none" style=&{head};>
             <li><a href="http://www.windows95.com">nested 1</a></li>
             <li><a href="http://www.shareware.com">nested 2</a></li>
          </ul>
          <li><a href="http://www.windows95.com">outer 3</a></li>
          <li><a href="http://www.shareware.com">outer 4</a></li>
       </ul>
    </ul>
    <script language="JavaScript1.2">
    <!--
    /**
     * Get cookie routine by Shelley Powers 
     * (shelley.powers@ne-dev.com)
     */
    function get_cookie(Name) {
      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;
    }
    
    if (get_cookie(window.location.pathname) != ''){
      var openresults=get_cookie(window.location.pathname).split(" ")
      for (i=0 ; i < openresults.length ; i++){
        foldinglist[openresults[i]].style.display=''
        document.all[foldinglist[openresults[i]].sourceIndex -
    1].style.listStyleImage="url(open.gif)"
      }
    }
    
    if (document.all){
      var nodelength=foldinglist.length-1
      var nodes=new Array(nodelength)
      var openones=''
    }
    
    function check(){
      for (i=0 ; i <= nodelength ; i++){
        if (foldinglist[i].style.display=='')
           openones=openones + " " + i
      }
      document.cookie=window.location.pathname+"="+openones
    }
    
    if (document.all)
      document.body.onunload=check
    //-->
    </script>
    I was wondering if I placed this in a fram called "left" and I have another frame called "rbottom" and someone clicks a link on the "rbottom" frame, is it possible to make one of the folders expand.

    Please one of you Javascript experts - please help

    I would really appreciate any help

  2. #2
    SitePoint Addict isuru's Avatar
    Join Date
    Nov 2000
    Posts
    206
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Come on someone must know how to do this. Im pretty desperate to get this done so somebody, anybody please help

    (Couldn't this be accomplished with an onClick= thing?)

  3. #3
    SitePoint Enthusiast
    Join Date
    Jul 1999
    Posts
    62
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    It's not so easy as it might seem.

    You'd have to rewrite the function Change(), at this moment it checks for an event, if you click somewhere in another frame, there is no event, so the function Change() wouldn't work.


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •