jquery - 更改 jstree 中的 AJAX 选项并从服务器重新加载树

标签 jquery jstree

我正在使用 ajax 在 jsTree 中加载 XML 平面树,因此声明如下所示(工作正常):

  $("#jstree").jstree({
        "xml_data": {
            //  "data": $xmlFlatData,
            "ajax": {
                type: "POST",
                async: true,
                "url": loc + "/AjaxReturnTree",
                data: '{"longnames":"'+flag+'"}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                cache: false,
                success: function (msg) { 
                        var mm = eval('(' + msg + ')'); ; // create object to get rid of json
                        return mm.d;
                },
                error: function () {
                    // TODO process error
                }
            },
            "xsl": "flat",
            "override_ui": "true",
            "real_checkboxes": "true"
        },
        "plugins": ["xml_data", "themes", "checkbox", "ui"]
    });

现在我需要重新加载树并将“longnames”部分更改为另一个标志(它是 0/1),但保持其他选项不变。

我正在尝试使用这样的东西:

           $("#jstree").jstree({
                "xml_data": {
                    "ajax": {
                     cache: false,
                        data: '{"longnames":"' + flag + '"}'
                    }
                }
            });
            $("#jstree").jstree("refresh");

但它不会触发新的 AJAX 请求,仅刷新屏幕上的树而不重新加载。

如何从服务器重新加载树?

另外,我如何确定我更改了旧ajax设置的属性,而不是创建一个全新的树对象?

最佳答案

    flag = 0;

    function getData() {
        return '{"longnames":"' + flag + '"}';
    }

    $("#jstree").jstree({
        "xml_data": {
            "ajax": {
                cache: false,
                data: getData()
            }
        }
    });

    $("#jstree").jstree("refresh"); //refresh with flag = 0

    flag = 1;
    $("#jstree").jstree("refresh"); //refresh with flag = 1

关于jquery - 更改 jstree 中的 AJAX 选项并从服务器重新加载树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6519747/

相关文章:

javascript - 引用错误 : require is not defined

javascript - 如何在html5中包含javascript

PHP - 如何在 file_get_contents 中获取 ajax 加载的内容

jquery - 如何使用 Javascript 提交将 Jquery ajax 添加到现有表单

javascript - jstree - 如何获取实例?

Jquery 分层/ TreeView 插件

javascript - jstree选中子节点时检查所有父节点

jquery - jstree选择节点

jquery - CSS布局: 2 column fixed-fluid (again)

c# - 在 Asp.Net MVC 中使用 JsTree 延迟加载 TreeView