473,221 Members | 1,992 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,221 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 2828
"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...
1
isladogs
by: isladogs | last post by:
The next online meeting of the Access Europe User Group will be on Wednesday 6 Dec 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, Mike...
0
by: veera ravala | last post by:
ServiceNow is a powerful cloud-based platform that offers a wide range of services to help organizations manage their workflows, operations, and IT services more efficiently. At its core, ServiceNow...
0
by: VivesProcSPL | last post by:
Obviously, one of the original purposes of SQL is to make data query processing easy. The language uses many English-like terms and syntax in an effort to make it easy to learn, particularly for...
3
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 3 Jan 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). For other local times, please check World Time Buddy In...
2
by: jimatqsi | last post by:
The boss wants the word "CONFIDENTIAL" overlaying certain reports. He wants it large, slanted across the page, on every page, very light gray, outlined letters, not block letters. I thought Word Art...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 7 Feb 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:30 (7.30PM). In this month's session, the creator of the excellent VBE...
0
Git
by: egorbl4 | last post by:
Скачал я git, хотел начать настройку, а там вылезло вот это Что это? Что мне с этим делать? ...
1
by: davi5007 | last post by:
Hi, Basically, I am trying to automate a field named TraceabilityNo into a web page from an access form. I've got the serial held in the variable strSearchString. How can I get this into the...
0
by: MeoLessi9 | last post by:
I have VirtualBox installed on Windows 11 and now I would like to install Kali on a virtual machine. However, on the official website, I see two options: "Installer images" and "Virtual machines"....

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.