在Jstree中为不同的节点类型添加不同的json_data.ajax.success处理程序

时间:2012-10-18 14:59:17

标签: javascript ajax jquery jstree

我想使用Jstree来表示树结构。我面临的问题是服务器没有以符合jstree的格式返回数据 - 它只是普通的Json。

我实现的一个解决方案是使用json_data.ajax.success回调来修改数据,以使其达到所需的格式。但是,此函数不会获取上下文信息 - 因此,我不知道正在加载哪个节点,并且不知道如何转换接收的数据。

我已经看到有一个types插件允许节点之间的不同行为 - 例如,显示相应的图标。是否可以使用此插件为每个节点类型添加不同的ajax成功处理程序?如果没有,还有其他解决方案吗?

$("#tree").jstree({
    "plugins": ["json_data", "themes", "types"],
    "json_data": {
        "ajax": {
            "url": function (n) {   // want to make this type-dependent.
                if (n === -1) {
                    return "...";
                } else if ( ... ) {
                    return "...";
                }
            },
            "success": function (data) {    // want to make this type-dependent
                var result = [];
                $.each(data, function (index, value) {
                    "data": "......",
                    "attr": {
                        "id": ".................",
                        "rel":  "..............."
                    }
                });
                return result;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您可以在服务器站点上为jsTree创建json数据,然后在服务器上再次处理它以添加jsTree的任何属性,然后您可以使用类型插件。