The jQuery treeview plugin can be found here, it is a brilliant plugin which makes amazing treeviews.
But when i use:
persist: "location"
I run into a little "problem", because i would like to have the treeview item selected when i use query's in the URL, and as default it just doesn't select any when using query.
What I need to do is to detect if there is a query in the url and then ignore it, I've done it the following way:
case "location": var current = this.find("a").filter(function() { return this.href.substring(0, (this.href.indexOf("?") == -1) ? this.href.length: this.href.indexOf("?")).toLowerCase() == location.href.substring(0, (location.href.indexOf("?") == -1) ? location.href.length: location.href.indexOf("?")).toLowerCase(); });
It is a pretty simple fix and works like a charm!
EDIT:
This version is also able to handle bookmarks and query in url.
case "location": var current = this.find("a").filter(function() { var linkLength = (this.href.indexOf("?") != -1) ? this.href.indexOf("?") : (this.href.indexOf("#") != -1) ? this.href.indexOf("#") : this.href.length; var link = this.href.substring(0, linkLength); var urlLength = (location.href.indexOf("?") != -1) ? location.href.indexOf("?") : (location.href.indexOf("#") != -1) ? location.href.indexOf("#") : location.href.length; var url = location.href.substring(0, urlLength); return link.toLowerCase() == url.toLowerCase(); });