0

コンテキスト メニュー オプションで jquery-dynatree を使用しています。

コンテキスト メニューのメニュー項目の 1 つで、サブツリー全体を選択として表示する必要があります。つまり、選択したノードとそのすべての子、私は以下のコードを使用してそれを行うことができます:

node.visit(function(childnode){
    $(childnode.span).addClass("copy");  // <== This works
});

今私は2つの問題があります:

1)最初の問題は、遅延ノードオプションがあることです。そのため、メニュー項目をクリックするたびに、サブツリー全体を選択済みとして表示する必要があります。そのために、以下のコードを使用しています

node.visit(function(childnode){
    childnode.expand(true);  // <== This works
    $(childnode.span).addClass("copy"); // <== Does not work
});

しかし、それは完全には機能しません。初期化したレベルまでノードを展開するだけであり、展開後に必要なCSSクラス「コピー」をそれ自体または子ノードに追加しません。

2)2番目の問題は、すべてのノードを手動で展開し、親ノードを選択して、クラス「コピー」を使用してサブツリー全体が表示されるようにすると、親の遅延ノードをクリックしてそれらの子を取得するたびに、「コピー」クラス選択したノードから削除されます

これを解決するためのヒントを楽しみにしています。

4

1 に答える 1

0

折りたたみモードで親をクリックしようとしていたため、最初のポイントの解決策が得られました。子ノードを展開する前に、まずノード自体を展開する必要がありました。

 node.expand(true); // This line was missing, it made the things work
                node.visit(function(childnode){
                    childnode.expand(true);
                    $(childnode.span).addClass("copy");
                });
于 2013-04-30T05:25:51.820 に答える