jstree - 覆盖依赖于当前URL的cookie

时间:2012-06-27 11:35:33

标签: cookies navigation href jstree

我正在使用带有html UL的jstree,每个节点都是导航的href,在每个html页面上通过php包含。

Jstree代码是:

$(function(){
$("#treeview").jstree({
    "themes" : {
        "theme" : "default",
        "dots" : false,
        "icons" : false
    },
    "ui" : {
            "selected_parent_close" : "false",
            "select_multiple_modifier" : "false",
    },
    "core": { 
                "animation": 500
            },
    "plugins" : [ "themes", "html_data", "ui", "cookies" ]

});
$("#treeview").bind("reselect.jstree", function () {
    $("#treeview").bind("select_node.jstree", function (e, data) {
        document.location = data.rslt.obj.children("a").attr("href");
    });

}); 
});

Cookie工作正常,但问题在于如何覆盖cookie选定节点,当(并且仅当)导航网址是根节点之一时?如果它是根节点,我希望它是开放的。当从外部源或站点中没有树的其他页面导航到树页时会发生这种情况,因此cookie设置不正确。

使用jquery 1.7.2,jstree 1.0。所有li id与页面名称相同,即对于href“page1”,相关li id为“page1”。

1 个答案:

答案 0 :(得分:1)

答案(或者更确切地说是'答案')是1)通过在UI插件中设置“save_selected”:false来更改cookie功能; 2)将initial_select设置为页面的id; 3)使用以下方法手动将所选节点设置为最后一步:$('#tree')。jstree(“select_node”,$('body')。attr('id'));