I use accordion menu not for a menu but to display a multiple level faq page ( categories / questions / answer ). I have only one faq page and I wanted to be able to link to a specific question/answer pair from elsewhere. Using the excellent information on http://www.menucool.com/vertical/accordion-menu#open_close, I put together this js file that I load just after loading the accordionmenu.js file. Then all I have to do is link to my faq page using something in this form: example.com/faq.html?id=li_id
I works great! Bulk of code below taken from 3rd edition David Flanagan's "JavaScript - The Definitive Guide".
/*
* script to take query string of form ?id=something and force
* accordion menu to open to the indicated id.
*/
/* function to parse the query string into name=value pairs */
function getArgs() {
var args= new Object();
var query = location.search.substring(1); // get query string
var pairs = query.split(","); // break at commas
for(var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf('='); // look for name=value
if (pos == -1) continue; // not here, skip
var argname = pairs[i].substring(0,pos); // otherwise, extract the name
var value = pairs[i].substring(pos+1); // and then the value
args[argname] = unescape(value); // store in our new Object
}
return args; // and send it back to caller
}
var args = getArgs(); // get the arguments
if (args.id) amenu.open(args.id.toString(), true); // open item if specified
If your question is related to the topic of this post, you can post your question to this page by clicking the "Post a reply" button at left;
If your question is related to the Accordion Menu, click:
Ask new question: Accordion MenuOtherwise navigate to one of the following forum categories, and post your question there.
##