jsTree未呈现

时间:2011-12-16 11:59:14

标签: javascript jquery asp.net jstree

有人能看到我的语法错误吗? jsTree只是不会渲染。

在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"));
        })
});

2 个答案:

答案 0 :(得分:3)

找到它:

之后的额外}

“plugins”:[“themes”,“json_data”,“ui”]

答案 1 :(得分:0)

这看起来可能是一个问题:

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

上面的"login"看起来很错误。 jsTree documentation表示"children"属性应为“子节点对象数组”; "login" String的存在违反了这一点。