473,395 Members | 1,956 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

contract and expand menus based on the previous state

I don't know what it is I am doing wrong, I am trying to get the menus to
either expand or contract based on their previous states, i.e if already
expanded if clicked again contract, and if contracted, expand, so far it
doesn't work for the about and services link(but works for the expand all
and contract all links), any help would be greatly appreciated:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Welcome </title>
<link rel="stylesheet" type="text/css"
href="style.css" />
<script type="text/javascript" src="simpletreemenu.js">
</script>
</head>
<div id="wrapper">

<div id="header">
</div>

<table id="table">
<tr>
<td id="empty"></td>

<td rowspan="2" id="content">
</td>

</tr>

<tr>
<td id="menu">
Sidebar
<h4>Menu</h4>

<a href="javascript:ddtreemenu.flatten('treemenu1', 'expand')">Expand
All</a| <a href="javascript:ddtreemenu.flatten('treemenu1',
'contact')">Contract All</a>

<ul id="treemenu1" class="treeview">
<li>Home</li>
<li><a href="javascript:ddtreemenu.flatten('treemenu1abou t',
'contact')">About</a>
<ul id="treemenu1about">
<li>History</li>
<li>Job opportunities</li>
</ul>
</li>
<li><a href="javascript:ddtreemenu.flatten('treemenu1serv ices',
'contact')">Services</a>
<ul id="treemenu1services">
<li>Virtual assistants</li>
<li>Website design and promotion
<ul>
<li>Website design</li>
<li>Search engine optimisation</li>
<li>Website promotion </li>
<liWebsite hosting</li>
</ul>
</li>

</ul>
</li>

<li>Faq</li>
<li>Contact</li>
</ul>
</td>
</tr>

</table>

</div>

</div>
</body>
</html>
Jun 12 '07 #1
11 2840
"Nospam" <no****@home.comwrote in
news:YJ****************@newsfe1-gui.ntli.net:
I don't know what it is I am doing wrong, I am trying to get the menus
to either expand or contract based on their previous states, i.e if
already expanded if clicked again contract, and if contracted, expand,
so far it doesn't work for the about and services link(but works for
the expand all and contract all links), any help would be greatly
appreciated:
its awfully hard to debug your javascript problem if you don't post any
javascript.
Jun 12 '07 #2
The javascript in simpletreemenu is:

var persisteduls=new Object()
var ddtreemenu=new Object()
ddtreemenu.closefolder="/includes/closed.gif" //set image path to "closed"
folder image
ddtreemenu.openfolder="/includes/open.gif" //set image path to "open" folder
image
//////////No need to edit beyond here///////////////////////////
ddtreemenu.createTree=function(treeid, enablepersist, persistdays){
var ultags=document.getElementById(treeid).getElements ByTagName("ul")
if (typeof persisteduls[treeid]=="undefined")
persisteduls[treeid]=(enablepersist==true &&
ddtreemenu.getCookie(treeid)!="")? ddtreemenu.getCookie(treeid).split(",") :
""
for (var i=0; i<ultags.length; i++)
ddtreemenu.buildSubTree(treeid, ultags[i], i)
if (enablepersist==true){ //if enable persist feature
var durationdays=(typeof persistdays=="undefined")? 1 :
parseInt(persistdays)
ddtreemenu.dotask(window, function(){ddtreemenu.rememberstate(treeid,
durationdays)}, "unload") //save opened UL indexes on body unload

}
}
ddtreemenu.buildSubTree=function(treeid, ulelement, index){
ulelement.parentNode.className="submenu"
if (typeof persisteduls[treeid]=="object"){ //if cookie exists
(persisteduls[treeid] is an array versus "" string)
if (ddtreemenu.searcharray(persisteduls[treeid], index)){
ulelement.setAttribute("rel", "open")
ulelement.style.display="block"
ulelement.parentNode.style.backgroundImage="url("+ ddtreemenu.openfolder+")"

}
else
ulelement.setAttribute("rel", "closed")

} //end cookie persist code
else if (ulelement.getAttribute("rel")==null ||
ulelement.getAttribute("rel")==false) //if no cookie and UL has NO rel
attribute explicted added by user
ulelement.setAttribute("rel", "closed")
else if (ulelement.getAttribute("rel")=="open") //else if no cookie and this
UL has an explicit rel value of "open"
ddtreemenu.expandSubTree(treeid, ulelement) //expand this UL plus all parent
ULs (so the most inner UL is revealed!)
ulelement.parentNode.onclick=function(e){
var submenu=this.getElementsByTagName("ul")[0]
if (submenu.getAttribute("rel")=="closed"){
submenu.style.display="block"
submenu.setAttribute("rel", "open")
ulelement.parentNode.style.backgroundImage="url("+ ddtreemenu.openfolder+")"

}
else if (submenu.getAttribute("rel")=="open"){
submenu.style.display="none"
submenu.setAttribute("rel", "closed")
ulelement.parentNode.style.backgroundImage="url("+ ddtreemenu.closefolder+")*
"

}
ddtreemenu.preventpropagate(e)

}
ulelement.onclick=function(e){
ddtreemenu.preventpropagate(e)
}
}
ddtreemenu.expandSubTree=function(treeid, ulelement){ //expand a UL element
and any of its parent ULs
var rootnode=document.getElementById(treeid)
var currentnode=ulelement
currentnode.style.display="block"
currentnode.parentNode.style.backgroundImage="url( "+ddtreemenu.openfolder+"*
)
"
while (currentnode!=rootnode){
if (currentnode.tagName=="UL"){ //if parent node is a UL, expand it too
currentnode.style.display="block"
currentnode.setAttribute("rel", "open") //indicate it's open
currentnode.parentNode.style.backgroundImage="url( "+ddtreemenu.openfolder+"*
)
"

}
currentnode=currentnode.parentNode
}
}
ddtreemenu.flatten=function(treeid, action){ //expand or contract all UL
elements
var ultags=document.getElementById(treeid).getElements ByTagName("ul")
for (var i=0; i<ultags.length; i++){
ultags[i].style.display=(action=="expand")? "block" : "none"
var relvalue=(action=="expand")? "open" : "closed"
ultags[i].setAttribute("rel", relvalue)
ultags[i].parentNode.style.backgroundImage=(action=="expand ")?
"url("+ddtreemenu.openfolder+")" : "url("+ddtreemenu.closefolder+")"
}
}
ddtreemenu.rememberstate=function(treeid, durationdays){ //store index of
opened ULs relative to other ULs in Tree into cookie
var ultags=document.getElementById(treeid).getElements ByTagName("ul")
var openuls=new Array()
for (var i=0; i<ultags.length; i++){
if (ultags[i].getAttribute("rel")=="open")
openuls[openuls.length]=i //save the index of the opened UL (relative to the
entire list of ULs) as an array element

}
if (openuls.length==0) //if there are no opened ULs to save/persist
openuls[0]="none open" //set array value to string to simply indicate all
ULs should persist with state being closed
ddtreemenu.setCookie(treeid, openuls.join(","), durationdays) //populate
cookie with value treeid=1,2,3 etc (where 1,2... are the indexes of the
opened ULs)
}
////A few utility functions below//////////////////////

ddtreemenu.getCookie=function(Name){ //get cookie value
var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target
name/value pair
if (document.cookie.match(re)) //if cookie found
return document.cookie.match(re)[0].split("=")[1] //return its value
return ""

}
ddtreemenu.setCookie=function(name, value, days){ //set cookei value
var expireDate = new Date()
//set "expstring" to either future or past date, to set or delete cookie,
respectively
var expstring=expireDate.setDate(expireDate.getDate()+ parseInt(days))
document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+";
path=/";
}
ddtreemenu.searcharray=function(thearray, value){ //searches an array for
the entered value. If found, delete value from array
var isfound=false
for (var i=0; i<thearray.length; i++){
if (thearray[i]==value){
isfound=true
thearray.shift() //delete this element from array for efficiency sake
break
}
}
return isfound
}
ddtreemenu.preventpropagate=function(e){ //prevent action from bubbling
upwards
if (typeof e!="undefined")
e.stopPropagation()
else
event.cancelBubble=true
}
ddtreemenu.dotask=function(target, functionref, tasktype){ //assign a
function to execute to an event handler (ie: onunload)
var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
if (target.addEventListener)
target.addEventListener(tasktype, functionref, false)
else if (target.attachEvent)
target.attachEvent(tasktype, functionref)
Jun 16 '07 #3
Nospam said the following on 6/16/2007 3:02 PM:
The javascript in simpletreemenu is:
Is there a question in there anywhere or are you just posting code for
the fun of it?

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jun 16 '07 #4
>Is there a question in there anywhere or are you just posting code for
>the fun of it?
Trying to get a menu to cotnract and expand using a javascript template. I
don't know what it is I am doing wrong, I am trying to get the menus to
either expand or contract based on their previous states, i.e if already
expanded if clicked again contract, and if contracted, expand, so far it
doesn't work for the about and services link(but works for the expand all
and contract all links), any help would be greatly appreciated:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Welcome </title>
<link rel="stylesheet" type="text/css"
href="style.css" />
<script type="text/javascript" src="simpletreemenu.js">
</script>
</head>
<div id="wrapper">

<div id="header">
</div>

<table id="table">
<tr>
<td id="empty"></td>

<td rowspan="2" id="content">
</td>

</tr>

<tr>
<td id="menu">
Sidebar
<h4>Menu</h4>

<a href="javascript:ddtreemenu.flatten('treemenu1', 'expand')">Expand
All</a| <a href="javascript:ddtreemenu.flatten('treemenu1',
'contact')">Contract All</a>

<ul id="treemenu1" class="treeview">
<li>Home</li>
<li><a href="javascript:ddtreemenu.flatten('treemenu1abou t',
'contact')">About</a>
<ul id="treemenu1about">
<li>History</li>
<li>Job opportunities</li>
</ul>
</li>
<li><a href="javascript:ddtreemenu.flatten('treemenu1serv ices',
'contact')">Services</a>
<ul id="treemenu1services">
<li>Virtual assistants</li>
<li>Website design and promotion
<ul>
<li>Website design</li>
<li>Search engine optimisation</li>
<li>Website promotion </li>
<liWebsite hosting</li>
</ul>
</li>

</ul>
</li>

<li>Faq</li>
<li>Contact</li>
</ul>
</td>
</tr>

</table>

</div>

</div>
</body>
</html>

This is the javascript for simpletreemenu:
var persisteduls=new Object()
var ddtreemenu=new Object()
ddtreemenu.closefolder="/includes/closed.gif" //set image path to "closed"
folder image
ddtreemenu.openfolder="/includes/open.gif" //set image path to "open" folder
image
//////////No need to edit beyond here///////////////////////////
ddtreemenu.createTree=function(treeid, enablepersist, persistdays){
var ultags=document.getElementById(treeid).getElements ByTagName("ul")
if (typeof persisteduls[treeid]=="undefined")
persisteduls[treeid]=(enablepersist==true &&
ddtreemenu.getCookie(treeid)!="")? ddtreemenu.getCookie(treeid).split(",") :
""
for (var i=0; i<ultags.length; i++)
ddtreemenu.buildSubTree(treeid, ultags[i], i)
if (enablepersist==true){ //if enable persist feature
var durationdays=(typeof persistdays=="undefined")? 1 :
parseInt(persistdays)
ddtreemenu.dotask(window, function(){ddtreemenu.rememberstate(treeid,
durationdays)}, "unload") //save opened UL indexes on body unload

}
}
ddtreemenu.buildSubTree=function(treeid, ulelement, index){
ulelement.parentNode.className="submenu"
if (typeof persisteduls[treeid]=="object"){ //if cookie exists
(persisteduls[treeid] is an array versus "" string)
if (ddtreemenu.searcharray(persisteduls[treeid], index)){
ulelement.setAttribute("rel", "open")
ulelement.style.display="block"
ulelement.parentNode.style.backgroundImage="url("+ ddtreemenu.openfolder+")"

}
else
ulelement.setAttribute("rel", "closed")

} //end cookie persist code
else if (ulelement.getAttribute("rel")==null ||
ulelement.getAttribute("rel")==false) //if no cookie and UL has NO rel
attribute explicted added by user
ulelement.setAttribute("rel", "closed")
else if (ulelement.getAttribute("rel")=="open") //else if no cookie and this
UL has an explicit rel value of "open"
ddtreemenu.expandSubTree(treeid, ulelement) //expand this UL plus all parent
ULs (so the most inner UL is revealed!)
ulelement.parentNode.onclick=function(e){
var submenu=this.getElementsByTagName("ul")[0]
if (submenu.getAttribute("rel")=="closed"){
submenu.style.display="block"
submenu.setAttribute("rel", "open")
ulelement.parentNode.style.backgroundImage="url("+ ddtreemenu.openfolder+")"

}
else if (submenu.getAttribute("rel")=="open"){
submenu.style.display="none"
submenu.setAttribute("rel", "closed")
ulelement.parentNode.style.backgroundImage="url("+ ddtreemenu.closefolder+")*
"

}
ddtreemenu.preventpropagate(e)

}
ulelement.onclick=function(e){
ddtreemenu.preventpropagate(e)
}
}
ddtreemenu.expandSubTree=function(treeid, ulelement){ //expand a UL element
and any of its parent ULs
var rootnode=document.getElementById(treeid)
var currentnode=ulelement
currentnode.style.display="block"
currentnode.parentNode.style.backgroundImage="url( "+ddtreemenu.openfolder+"*
)
"
while (currentnode!=rootnode){
if (currentnode.tagName=="UL"){ //if parent node is a UL, expand it too
currentnode.style.display="block"
currentnode.setAttribute("rel", "open") //indicate it's open
currentnode.parentNode.style.backgroundImage="url( "+ddtreemenu.openfolder+"*
)
"

}
currentnode=currentnode.parentNode
}
}
ddtreemenu.flatten=function(treeid, action){ //expand or contract all UL
elements
var ultags=document.getElementById(treeid).getElements ByTagName("ul")
for (var i=0; i<ultags.length; i++){
ultags[i].style.display=(action=="expand")? "block" : "none"
var relvalue=(action=="expand")? "open" : "closed"
ultags[i].setAttribute("rel", relvalue)
ultags[i].parentNode.style.backgroundImage=(action=="expand ")?
"url("+ddtreemenu.openfolder+")" : "url("+ddtreemenu.closefolder+")"
}
}
ddtreemenu.rememberstate=function(treeid, durationdays){ //store index of
opened ULs relative to other ULs in Tree into cookie
var ultags=document.getElementById(treeid).getElements ByTagName("ul")
var openuls=new Array()
for (var i=0; i<ultags.length; i++){
if (ultags[i].getAttribute("rel")=="open")
openuls[openuls.length]=i //save the index of the opened UL (relative to the
entire list of ULs) as an array element

}
if (openuls.length==0) //if there are no opened ULs to save/persist
openuls[0]="none open" //set array value to string to simply indicate all
ULs should persist with state being closed
ddtreemenu.setCookie(treeid, openuls.join(","), durationdays) //populate
cookie with value treeid=1,2,3 etc (where 1,2... are the indexes of the
opened ULs)
}
////A few utility functions below//////////////////////

ddtreemenu.getCookie=function(Name){ //get cookie value
var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target
name/value pair
if (document.cookie.match(re)) //if cookie found
return document.cookie.match(re)[0].split("=")[1] //return its value
return ""

}
ddtreemenu.setCookie=function(name, value, days){ //set cookei value
var expireDate = new Date()
//set "expstring" to either future or past date, to set or delete cookie,
respectively
var expstring=expireDate.setDate(expireDate.getDate()+ parseInt(days))
document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+";
path=/";
}
ddtreemenu.searcharray=function(thearray, value){ //searches an array for
the entered value. If found, delete value from array
var isfound=false
for (var i=0; i<thearray.length; i++){
if (thearray[i]==value){
isfound=true
thearray.shift() //delete this element from array for efficiency sake
break
}
}
return isfound
}
ddtreemenu.preventpropagate=function(e){ //prevent action from bubbling
upwards
if (typeof e!="undefined")
e.stopPropagation()
else
event.cancelBubble=true
}
ddtreemenu.dotask=function(target, functionref, tasktype){ //assign a
function to execute to an event handler (ie: onunload)
var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
if (target.addEventListener)
target.addEventListener(tasktype, functionref, false)
else if (target.attachEvent)
target.attachEvent(tasktype, functionref)

Jun 18 '07 #5
On Jun 18, 8:27 am, "Nospam" <nos...@home.comwrote:
Is there a question in there anywhere or are you just posting code for
the fun of it?

Trying to get a menu to cotnract and expand using a javascript template. I
You are persistent aren't you.
don't know what it is I am doing wrong, I am trying to get the menus to
either expand or contract based on their previous states, i.e if already
expanded if clicked again contract, and if contracted, expand, so far it
doesn't work for the about and services link(but works for the expand all
and contract all links), any help would be greatly appreciated:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Welcome </title>
<link rel="stylesheet" type="text/css"
href="style.css" />
<script type="text/javascript" src="simpletreemenu.js">
</script>
</head>

<div id="wrapper">

<div id="header">
</div>

<table id="table">
<tr>
<td id="empty"></td>

<td rowspan="2" id="content">

</td>

</tr>

<tr>
<td id="menu">
Sidebar
<h4>Menu</h4>

<a href="javascript:ddtreemenu.flatten('treemenu1', 'expand')">Expand
All</a| <a href="javascript:ddtreemenu.flatten('treemenu1',
'contact')">Contract All</a>
A word of advice: if you are going to create anchors with the JS
protocol, you need to create them with script.
>
<ul id="treemenu1" class="treeview">
<li>Home</li>

<li><a href="javascript:ddtreemenu.flatten('treemenu1abou t',
'contact')">About</a>
<ul id="treemenu1about">
<li>History</li>
<li>Job opportunities</li>
</ul>
</li>

<li><a href="javascript:ddtreemenu.flatten('treemenu1serv ices',
'contact')">Services</a>
<ul id="treemenu1services">
<li>Virtual assistants</li>
<li>Website design and promotion
<ul>
<li>Website design</li>
<li>Search engine optimisation</li>
<li>Website promotion </li>
<liWebsite hosting</li>
</ul>
</li>

</ul>
</li>

<li>Faq</li>
<li>Contact</li>
</ul>
</td>
</tr>

</table>

</div>

</div>
</body>
</html>

This is the javascript for simpletreemenu:
So where did you get this thing and why don't you ask the people
responsible for it?
var persisteduls=new Object()
var ddtreemenu=new Object()

ddtreemenu.closefolder="/includes/closed.gif" //set image path to "closed"
folder image
ddtreemenu.openfolder="/includes/open.gif" //set image path to "open" folder
image

//////////No need to edit beyond here///////////////////////////

ddtreemenu.createTree=function(treeid, enablepersist, persistdays){
var ultags=document.getElementById(treeid).getElements ByTagName("ul")
if (typeof persisteduls[treeid]=="undefined")
persisteduls[treeid]=(enablepersist==true &&
ddtreemenu.getCookie(treeid)!="")? ddtreemenu.getCookie(treeid).split(",") :
""
for (var i=0; i<ultags.length; i++)
ddtreemenu.buildSubTree(treeid, ultags[i], i)
if (enablepersist==true){ //if enable persist feature
var durationdays=(typeof persistdays=="undefined")? 1 :
parseInt(persistdays)
ddtreemenu.dotask(window, function(){ddtreemenu.rememberstate(treeid,
durationdays)}, "unload") //save opened UL indexes on body unload

}
}

ddtreemenu.buildSubTree=function(treeid, ulelement, index){
ulelement.parentNode.className="submenu"
if (typeof persisteduls[treeid]=="object"){ //if cookie exists
(persisteduls[treeid] is an array versus "" string)
if (ddtreemenu.searcharray(persisteduls[treeid], index)){
ulelement.setAttribute("rel", "open")
ulelement.style.display="block"
ulelement.parentNode.style.backgroundImage="url("+ ddtreemenu.openfolder+")"

}

else
ulelement.setAttribute("rel", "closed")

} //end cookie persist code

else if (ulelement.getAttribute("rel")==null ||
ulelement.getAttribute("rel")==false) //if no cookie and UL has NO rel
attribute explicted added by user
ulelement.setAttribute("rel", "closed")
else if (ulelement.getAttribute("rel")=="open") //else if no cookie and this
UL has an explicit rel value of "open"
ddtreemenu.expandSubTree(treeid, ulelement) //expand this UL plus all parent
ULs (so the most inner UL is revealed!)
ulelement.parentNode.onclick=function(e){
var submenu=this.getElementsByTagName("ul")[0]
if (submenu.getAttribute("rel")=="closed"){
submenu.style.display="block"
submenu.setAttribute("rel", "open")
ulelement.parentNode.style.backgroundImage="url("+ ddtreemenu.openfolder+")"

}

else if (submenu.getAttribute("rel")=="open"){
submenu.style.display="none"
submenu.setAttribute("rel", "closed")
ulelement.parentNode.style.backgroundImage="url("+ ddtreemenu.closefolder+")**
"

}

ddtreemenu.preventpropagate(e)

}

ulelement.onclick=function(e){
ddtreemenu.preventpropagate(e)

}
}

ddtreemenu.expandSubTree=function(treeid, ulelement){ //expand a UL element
and any of its parent ULs
var rootnode=document.getElementById(treeid)
var currentnode=ulelement
currentnode.style.display="block"
currentnode.parentNode.style.backgroundImage="url( "+ddtreemenu.openfolder+"**
)
"
while (currentnode!=rootnode){
if (currentnode.tagName=="UL"){ //if parent node is a UL, expand it too
currentnode.style.display="block"
currentnode.setAttribute("rel", "open") //indicate it's open
currentnode.parentNode.style.backgroundImage="url( "+ddtreemenu.openfolder+"**
)
"

}

currentnode=currentnode.parentNode

}
}

ddtreemenu.flatten=function(treeid, action){ //expand or contract all UL
elements
var ultags=document.getElementById(treeid).getElements ByTagName("ul")
for (var i=0; i<ultags.length; i++){
ultags[i].style.display=(action=="expand")? "block" : "none"
var relvalue=(action=="expand")? "open" : "closed"
ultags[i].setAttribute("rel", relvalue)
ultags[i].parentNode.style.backgroundImage=(action=="expand ")?
"url("+ddtreemenu.openfolder+")" : "url("+ddtreemenu.closefolder+")"

}
}

ddtreemenu.rememberstate=function(treeid, durationdays){ //store index of
opened ULs relative to other ULs in Tree into cookie
var ultags=document.getElementById(treeid).getElements ByTagName("ul")
var openuls=new Array()
for (var i=0; i<ultags.length; i++){
if (ultags[i].getAttribute("rel")=="open")
openuls[openuls.length]=i //save the index of the opened UL (relative to the
entire list of ULs) as an array element

}

if (openuls.length==0) //if there are no opened ULs to save/persist
openuls[0]="none open" //set array value to string to simply indicate all
ULs should persist with state being closed
ddtreemenu.setCookie(treeid, openuls.join(","), durationdays) //populate
cookie with value treeid=1,2,3 etc (where 1,2... are the indexes of the
opened ULs)

}

////A few utility functions below//////////////////////

ddtreemenu.getCookie=function(Name){ //get cookie value
var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target
name/value pair
if (document.cookie.match(re)) //if cookie found
return document.cookie.match(re)[0].split("=")[1] //return its value
return ""

}

ddtreemenu.setCookie=function(name, value, days){ //set cookei value
var expireDate = new Date()
//set "expstring" to either future or past date, to set or delete cookie,
respectively
var expstring=expireDate.setDate(expireDate.getDate()+ parseInt(days))
document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+";
path=/";

}

ddtreemenu.searcharray=function(thearray, value){ //searches an array for
the entered value. If found, delete value from array
var isfound=false
for (var i=0; i<thearray.length; i++){
if (thearray[i]==value){
isfound=true
thearray.shift() //delete this element from array for efficiency sake
break

}
}
return isfound
}

ddtreemenu.preventpropagate=function(e){ //prevent action from bubbling
upwards
if (typeof e!="undefined")
e.stopPropagation()
else
event.cancelBubble=true

}

ddtreemenu.dotask=function(target, functionref, tasktype){ //assign a
function to execute to an event handler (ie: onunload)
var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
if (target.addEventListener)
target.addEventListener(tasktype, functionref, false)
else if (target.attachEvent)
target.attachEvent(tasktype, functionref)
This blob of script isn't helpful. Again, try the author(s) and be
sure to tell them what the specific problem is.

Jun 20 '07 #6
dm***@cinsoft.net wrote:
><a href="javascript:ddtreemenu.flatten('treemenu1', 'expand')">Expand
All</a| <a href="javascript:ddtreemenu.flatten('treemenu1',
'contact')">Contract All</a>

A word of advice: if you are going to create anchors with the JS
protocol, you need to create them with script.
Explain that. As is, you're wrong.

--
-Lost
Remove the extra words to reply by e-mail. Don't e-mail me. I am
kidding. No I am not.
Jun 20 '07 #7
-Lost said the following on 6/20/2007 12:37 AM:
dm***@cinsoft.net wrote:
>><a href="javascript:ddtreemenu.flatten('treemenu1', 'expand')">Expand
All</a| <a href="javascript:ddtreemenu.flatten('treemenu1',
'contact')">Contract All</a>

A word of advice: if you are going to create anchors with the JS
protocol, you need to create them with script.

Explain that. As is, you're wrong.
Actually, the advice is solid. It is just based on a bad premise. While
it is bad form/error-prone to use the javascript: protocol , it good
advice to suggest creating it with JS. Although, if all you want is the
onclick event, use a button that is created with JS.

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jun 20 '07 #8
Randy Webb wrote:
-Lost said the following on 6/20/2007 12:37 AM:
>dm***@cinsoft.net wrote:
>>><a href="javascript:ddtreemenu.flatten('treemenu1', 'expand')">Expand
All</a| <a href="javascript:ddtreemenu.flatten('treemenu1',
'contact')">Contract All</a>

A word of advice: if you are going to create anchors with the JS
protocol, you need to create them with script.

Explain that. As is, you're wrong.

Actually, the advice is solid. It is just based on a bad premise. While
it is bad form/error-prone to use the javascript: protocol , it good
advice to suggest creating it with JS. Although, if all you want is the
onclick event, use a button that is created with JS.
Oh. Why is that then? I don't understand why the link or the BUTTON
has to be created with JavaScript.

--
-Lost
Remove the extra words to reply by e-mail. Don't e-mail me. I am
kidding. No I am not.
Jun 20 '07 #9
-Lost said the following on 6/20/2007 1:29 AM:
Randy Webb wrote:
>-Lost said the following on 6/20/2007 12:37 AM:
>>dm***@cinsoft.net wrote:
<a href="javascript:ddtreemenu.flatten('treemenu1', 'expand')">Expand
All</a| <a href="javascript:ddtreemenu.flatten('treemenu1',
'contact')">Contract All</a>

A word of advice: if you are going to create anchors with the JS
protocol, you need to create them with script.

Explain that. As is, you're wrong.

Actually, the advice is solid. It is just based on a bad premise.
While it is bad form/error-prone to use the javascript: protocol , it
good advice to suggest creating it with JS. Although, if all you want
is the onclick event, use a button that is created with JS.

Oh. Why is that then? I don't understand why the link or the BUTTON
has to be created with JavaScript.
If the only purpose of a link/button is for the JS crowd, and you create
it with JS, then the non-JS people never see it. The only time it shows
on the page - or even exists - is if it is needed. Perfect degradation :-)

--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Jun 20 '07 #10
Randy Webb wrote:
-Lost said the following on 6/20/2007 1:29 AM:
>Randy Webb wrote:
>>-Lost said the following on 6/20/2007 12:37 AM:
dm***@cinsoft.net wrote:
><a href="javascript:ddtreemenu.flatten('treemenu1', 'expand')">Expand
>All</a| <a href="javascript:ddtreemenu.flatten('treemenu1',
>'contact')">Contract All</a>
>
A word of advice: if you are going to create anchors with the JS
protocol, you need to create them with script.

Explain that. As is, you're wrong.

Actually, the advice is solid. It is just based on a bad premise.
While it is bad form/error-prone to use the javascript: protocol , it
good advice to suggest creating it with JS. Although, if all you want
is the onclick event, use a button that is created with JS.

Oh. Why is that then? I don't understand why the link or the BUTTON
has to be created with JavaScript.

If the only purpose of a link/button is for the JS crowd, and you create
it with JS, then the non-JS people never see it. The only time it shows
on the page - or even exists - is if it is needed. Perfect degradation :-)
Ah, OK. Thanks. That totally eluded me, but now that I see it, it
makes perfect sense.

--
-Lost
Remove the extra words to reply by e-mail. Don't e-mail me. I am
kidding. No I am not.
Jun 20 '07 #11
I still can't find a solution to my problem, the contract and expand menus
don't work on sub menus only on the main contract all, and expand all
javascript, can anyone see anything in the code, or something I am missing
to get it to expand and contract for each sub menus?
Jul 7 '07 #12

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
by: peter | last post by:
I use the click-to-expand menu at http://javascript.internet.com/navigation/click-to-expand-menu.html This works fine, but is there a way to expand or collapse all the menus? An example of how...
4
by: Rabel | last post by:
I am not very good at javascript I mostly am a flash developer but I am trying to apply one of our old expanding menus to work for a new site but it doesn't collapse the way I need it to right now...
12
by: amygdala | last post by:
Hi there, | div A \|/ ------------------------------- | | | | | | div B \|/ ...
2
by: ykhamitkar | last post by:
Hi there, I have an ms access form and have used treeview within it. When somebody double clicks on the node it opens a separete window for the information of that Node. But due to default...
0
by: Homer J. Simpson | last post by:
A few weeks ago I asked for suggestions on how to persist a tree's node state to cookies, without causing postbacks on each click in the tree. I had a single .aspx file, with a row of buttons on...
1
by: dgb09 | last post by:
Hi guys, Im trying to write a program in C++ using windows with an interface that is similar to either media centre or sony's XMB where there are 3 layers of menus, with the lower 2 layers driven...
0
by: TOM GUGGER | last post by:
TOM GUGGER INDEPENDENT RECRUITER tgugger@bex.net 419-537-9447 MS SQL SERVER DBA/ CONTRACT/ INDIANA We have an immediate need for a MS SQL SERVER DBA who has proven previous implementation...
5
by: Martin52 | last post by:
Hi, I need help please. I changed the settings in MS Access to hide all the menus. How can I restore to previous state, to show all the menus. Is it possible to hide the menus when everybody else...
1
by: Ryan Freckleton | last post by:
Hi Everyone, I'm currently developing a decorator and metaclass based implementation of design by contract for python. (I'd have uploaded it to PyPI already, but I haven't had time to create a...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.