It has some old selectors. I just had to update it for a project myself. There were just 4 lines that I changed, which got it to work for my situation. There may be other issues for more complex trees; I just had a two-level tree hierarchy.
- var branches = $("li[>ul]", this); + var branches = $("li:has(>ul)", this); - $("li[ul]:not([>a])>span", this).click(function(event) { + $("li:has(>ul):not(>a)>span", this).click(function(event) { - branches.filter("[>ul:hidden]") + branches.filter(":has(>ul:hidden)") - branches.not("[>ul:hidden]") + branches.not(":has(>ul:hidden)")