Hello everyone,
Please give me a hand.
I have a hierarchy list run by HTML, CSS and Javasript. I also have Expand All and Collapse All buttons.
Everytime the page is loaded, the list displays as a collapsing one. What should I have to have to get the list expanding automatically when the page is loaded?
Thank you very much for your help.
Below is the scripts
HTML code:
<a href="javascript: openMap();">Expand All</a> | <a href="javascript:closeMap();">Collapse All</a>
<ul id="sitemap">
<li><a href="#">First link</a>
<ul>
<li><a href="#">First link</a>
<ul>
<li><a href="#">First link</a></li>
<li><a href="#">Second link</a></li>
<li><a href="#">Third link</a></li>
<li><a href="#">Fourth link</a></li>
<li><a href="#">Fifth link</a></li>
</ul>
</li>
</ul>
</li>
</ul>
Below is Javascript file:
this.sitemapstyler = function(){
var sitemap = document.getElementById("sitemap")
if(sitemap){
this.listItem = function(li){
if(li.getElementsByTagName("ul").length > 0){
var ul = li.getElementsByTagName("ul")[0];
ul.style.display = "none";
var span = document.createElement("span");
span.className = "collapsed";
span.onclick = function(){
ul.style.display = (ul.style.display == "none") ? "block" : "none";
this.className = (ul.style.display == "none") ? "collapsed" : "expanded";
};
li.onkeydown = function(e){
var KeyID = (window.event) ? event.keyCode : e.keyCode;
switch(KeyID){
case 37: // left arrow key press
ul.style.display = "none";
span.className = "collapsed";
break;
case 39: // right arrow key press
ul.style.display = "block";
span.className = "expanded";
break;
}
};
li.appendChild(span);
};
};
var items = sitemap.getElementsByTagName("li");
for(var i=0;i<items.length;i++){
listItem(items[i]);
};
};
};
window.onload = sitemapstyler;
function openMap(){
var sitemap = document.getElementById("sitemap")
if(sitemap){
this.listItem = function(li){
if(li.getElementsByTagName("ul").length > 0){
var ul = li.getElementsByTagName("ul")[0];
ul.style.display = "block";
var span = document.createElement("span");
span.className = "expanded";
span.onclick = function(){
ul.style.display = (ul.style.display == "none") ? "block" : "none";
this.className = (ul.style.display == "none") ? "collapsed" : "expanded";
};
li.onkeydown = function(e){
var KeyID = (window.event) ? event.keyCode : e.keyCode;
switch(KeyID){
case 37:
ul.style.display = "none";
span.className = "collapsed";
break;
case 39:
ul.style.display = "block";
span.className = "expanded";
break;
}
};
li.appendChild(span);
};
};
var items = sitemap.getElementsByTagName("li");
for(var i=0;i<items.length;i++){
listItem(items[i]);
};
};
};
function closeMap(){
var sitemap = document.getElementById("sitemap")
if(sitemap){
this.listItem = function(li){
if(li.getElementsByTagName("ul").length > 0){
var ul = li.getElementsByTagName("ul")[0];
ul.style.display = "none";
var span = document.createElement("span");
span.className = "collapsed";
span.onclick = function(){
ul.style.display = (ul.style.display == "none") ? "block" : "none";
this.className = (ul.style.display == "none") ? "collapsed" : "expanded";
};
li.onkeydown = function(e){
var KeyID = (window.event) ? event.keyCode : e.keyCode;
switch(KeyID){
case 37:
ul.style.display = "none";
span.className = "collapsed";
break;
case 39:
ul.style.display = "block";
span.className = "expanded";
break;
}
};
li.appendChild(span);
};
};
var items = sitemap.getElementsByTagName("li");
for(var i=0;i<items.length;i++){
listItem(items[i]);
};
};
};


Reply With Quote
Bookmarks