如何通过事件重新加载或重新编译jstree?

时间:2014-03-19 15:21:53

标签: javascript jquery jstree

我正在尝试通过使用click事件调用func来重新加载jstree treeview。它不会重新加载新数据。

var MenuTree = function (user) {
    $.ajax({
        type: "POST",
        url: "Permission.aspx/Menu",
        data: '{user: "' + user + '"}',
        contentType: "application/json",
        dataType: "json",
        success: function (data) {
            //$("#tree_menu").jstree('destroy');
            var menujson = JSON.parse(data.d);
            $('#tree_menu').jstree({
                'plugins': ["wholerow", "checkbox", "types"],
                "checkbox": {
                    "keep_selected_style": false,
                    "three_state": false
                },
                'core': {
                    "themes": {
                        "responsive": false
                    },
                    'data': menujson
                }
            });
        },
        error: function () {
            console.log('err')
        }
    });

当我第一次调用MenuTree函数时,它会工作并重新加载,然后当我尝试再次调用它时它不会改变。

当我在$("#tree_menu").jstree('destroy');之前使用$('#tree_menu').jstree()时,除了deselect_node.jstree Eventselect_node.jstree Event之外,它才有效。

如何使用新数据和事件重新加载jstree?

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你可以这样做,

.bind('any_event',function(e,data){

 $(tree).jstree('refresh);

});

这将重新加载您的树。在任何事件(jstree或jquery)中编写代码,你就完成了!