1

jstree で選択したノードの状態を取得するのが困難です (JSON データを使用)。これが私が物事を実装しようとしている方法です:

$(function () {
    $("#tree").jstree({ 
        "json_data" : {
            "data" : [
                { 
                    data : "/", 
                    attr : { "id" : "root"},
                    state : "closed",
                    "children" : [ { "data" : "child1",
                                    "attr" : { "id" : "child1.id" },
                                    "children" : [ ] }
                                 ]
                },
            ]
        },
        "plugins" : [ "themes", "json_data", "crrm", "ui" ]
    })
    .bind("select_node.jstree",function(event, data) { . . . }

私の調査によると、 をdata.rslt.obj.attr("state")返す必要state("open" or "closed")があることがわかりましたが、 undefined が返されます。ここで何が欠けているかを特定するのを手伝ってもらえますか?

4

3 に答える 3

0

AFAICT、jsTreeは状態をどこにも保存しません(特にソースコードを調べた後)が、それを判断するためにノードのクラスを使用します。

したがって、私の最善の提案は、次のようなことです。

(...)
.bind("select_node.jstree", function (e, data) {
    var isOpen = data.rslt.obj.hasClass("jstree-open");
    console.log(data, 'selection is ' + (isOpen ? 'open' : 'closed'));
});
于 2013-09-17T22:41:23.940 に答える