1

我正在使用jQuery Treeview插件在具有嵌套类别级别的站点上进行导航。在每个类别中都有产品,每个产品都有一个或多个信息类型。

所以我的网址可以是:

  1. foo.com/view/cat_id/
  2. foo.com/view/cat_id/prod_id/
  3. foo.com/view/cat_id/prod_id/info_id/

麻烦的是,产品的导航与类别分开,这意味着 Treeview 仅“知道”(因此标记为“活动”)案例 1。案例 2 和 3 意味着树已折叠,而我希望树在所有情况下都对 cat_id 开放。

(我对任何事情都持开放态度,但是)我认为解决方案是一些 Javascript 技巧,可以从 URL 中删除 cat_id/ 之后的任何内容,以便我可以将结果传递给 Treeview,但不是我可以使用 Javascript不知道该怎么做。

注意:我正在寻求有关 Javascript 正则表达式的帮助,而不是 Treeview,尽管如果有人知道现成的解决方案,我当然会全神贯注。

TIA。

4

1 回答 1

1

在朋友的帮助下(感谢 Sawks),我将给出我自己问题的答案,以防其他人发现自己在同一条船上。

我将 jquery.treeview.js 中从 206 开始的行更改为:

case "location":
    var current = this.find("a").filter(function() { return this.href.toLowerCase() == location.href.toLowerCase(); });
    if ( current.length ) {
        current.addClass("selected").parents("ul, li").add( current.next() ).show();
    }
    break;
}

到:

case "location":
    var current_location = location.href.toLowerCase();
    var current_base = current_location.split('/').slice(0,5).join('/')+'/';
    var current = this.find("a").filter(function() { return this.href.toLowerCase() == current_base; });
    if ( current.length ) {
        current.addClass("selected").parents("ul, li").add( current.next() ).show();
    }
    break;
}
于 2008-12-05T04:48:24.260 回答