jstreet不被渲染

jsTree is not rendered

本文关键字:jstreet      更新时间:2023-09-26

有人能看到我的语法错误吗?jstreet就是不渲染。

+ jquery 1.7中的一个奇怪错误:

未捕获错误:语法错误,无法识别的表达式:#

var data = [
    {
    "data": "Basics",
    "state": "closed",
    // omit `attr` if not needed; the `attr` object gets passed to the jQuery `attr` function
    "attr": { "id": "1234", "some-other-attribute": "attribute_value" },
    "children": [{
        "data": "login",
        "state": "closed",
        "children": [
        {
            "data": "results",
            "state": "closed",
            "attr": { "id": "node-123" }
        }]
    }]
}];
$(function () {
    $("#jstree").jstree({
        "json_data": {
            //initial - demo only, usually takes json from the controller
            //static data, or function(node, mappingBeforeRequestToserver)
            "data": data,

            //If both data and ajax are set the initial tree is rendered from the data string. 
            //When opening a closed node (that has no loaded children) an AJAX request is made.
            "ajax": {
                //data: mappingBeforeRequestToserver-function(node about to be open or -1).  `this` will be the tree instance) 
                //url: function(node about to be open as a paramater or -1) retuns the ajax URL (like /get_children/node_2).
                //The error and success functions- modifiying the results from the server before populating the tree  

                type: "POST",
                async: true,
                "url": "/echo/json/",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                cache: false,
                success: function (msg) {
                    return msg;
                },
                error: function () {
                    // TODO process error
                }
            },
//          "xsl": "flat",
//          "override_ui": "true",
//          "real_checkboxes": "true",
            "plugins": ["themes", "json_data", "ui"]
        }
        // 1) if using the UI plugin bind to select_node
    }).bind("select_node.jstree", function (event, data) {
            // `data.rslt.obj` is the jquery extended node that was clicked
            alert(data.rslt.obj.attr("id"));
        })
});

发现:

后面有一个额外的}

"插件":["主题"、"json_data","用户界面")

这看起来可能是个问题:

"children": ["login",
    {
        "data": "results",
        "state": "closed",
        "attr": {
            "id": "node-123"
        }
     }
]

上面的"login"看起来是错误的。jsTree文档说"children"属性应该是一个"子节点对象的数组";"login" String的存在违背了这一点。