0

我是 JS 和 JsTree 的新手。

尝试使用我的框架中的 ajax 调用构建一个 JsTree,效果很好。

现在我需要调试树中的数据,尤其是来自不同节点和根节点的 ID。我不知道我该怎么做。

实际上我有以下代码树

<script>
$(function () {
    var treeid = "<?php echo Uri::segment(4); ?>";
    $("#jstree").jstree({ 
        "json_data" : {
            "ajax" : {
                "url" : "http://coreadmin.local/admin/metadata/service/treedata.json?id="+treeid,
                "data" : function (n) {
                    return { id : n.attr ? n.attr("id") : 1 };
                }
            }                      
        },
        "plugins" : [ "themes", "json_data", "ui", "crrm", "dnd", "contextmenu" ],        
        "themes" : {
                      "theme" : "apple",
                      "dots" : false,
                      "icons" : true
                  }, 
    }) 
    .bind("select_node.jstree", function (event, data) {
        // `data.rslt.obj` is the jquery extended node that was clicked
        alert(data.rslt.obj.attr("id"));
    })   
    .bind("create.jstree", function (e, data) {
        $.post(
            "http://coreadmin.local/admin/metadata/service/createchild",                 
            { 
                // "operation" : "create_node", 
                "parent" : data.rslt.parent.attr("id"), 
                "position" : data.rslt.position,
                "name" : data.rslt.name,
                // "type" : data.rslt.obj.attr("rel")
            }, 
            function (r) {
                if(r.status) {
                    $(data.rslt.obj).attr("id", r.id);
                    data.inst.refresh();
                }
                else {
                    $.jstree.rollback(data.rlbk);
                }
            }
        );  
});

这是我的 JSON 数据

{"data":"Bill","attr":"{ id : 1 }","children":[{"data":"Angela","attr":"{ id : 2 }"},{"data":"Ben","attr":"{ id : 3 }"},{"data":"test","attr":"{ id : 9 }"},{"data":"aa","attr":"{ id : 10 }"},{"data":"aaa","attr":"{ id : 11 }"},{"data":"eee","attr":"{ id : 12 }"},{"data":"ee2","attr":"{ id : 13 }"},{"data":"ee3","attr":"{ id : 14 }"},{"data":"ee4","attr":"{ id : 15 }"},{"data":"ee5","attr":"{ id : 17 }"}]}

通过单击一个节点,我尝试查看该节点的 ID,但这始终是“未定义的”。也许有人可以给我一个提示我做错了什么。

谢谢

4

1 回答 1

0

将 attr 部分的引号放在 JSON 数据中,如下所示:

        {
        "data": "Angela",
        "attr": {
            "id": 2
        }
    },
于 2013-06-12T17:11:42.877 回答