5

jsTree jquery プラグインを使用しています

選択した親のすべてのノードとサブノードを取得しようとしています。しかし、どういうわけか、再帰を使用しないと機能しません。jsTree に固有のより良い方法はありますか?

4

3 に答える 3

4

以前のソリューションを試しましたが、最新バージョンの jsTree (v3.2.1) では機能しません。以下は、親の子ノードとサブノードを取得するための更新されたソリューションです。

$("#myTree").bind('selected_node.jstree', function (node, data) {
    var selectedNodes = $("#myTree").jstree(true).get_json(data.node.id, { flat: true });
    for (var i = 0; i < selectedNodes.length; i++) {
       // Apply logic here
       // ...
       // ...
       // ...
    }
});
于 2016-02-01T14:01:46.453 に答える
4

このセレクターを使用すると、完全なツリーをすべて取得できます。$("#demo1").find("li > a")

于 2012-07-16T20:19:29.207 に答える
2

これを行う方法を見つけました。私の場合、ツリーのデータソースとして xml を使用しています。次の方法で open_node イベントを jstree にバインドしています。xml を使用していますが、内部構造は html データの構造であることに注意してください。

// jsTree Configuration hash
var jsTreeConfig = {};

$("#demo1").jstree( jsTreeConfig )
            .bind('open_node.jstree', function( e, data ) {
                var parentObj = data.rslt.obj; // parent object
                var jstreeInstance = data.inst; // jstree instance
                $(data.rslt.obj).find("li").each( function( idx, listItem ) {
                    var child = $(listItem); // child object
                    // do Stuff with child which can be any level of hierarchy depth
                    // ...
                });
            });
于 2012-07-16T22:11:58.357 に答える