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();
});