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

次のように、JSON データの attr 部分の引用符を配置します。

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