私は4つのノードツリーを持っています.2番目のノードをクリックして、4番目のノードを直接開きたいとします。 平均私は子ノードの子を開きたいです。 私はそれを試しているが、それを得ることができない。ノードをクリックしたとき子ノードの子ノードを開く方法
0
A
答えて
0
https://jsfiddle.net/5dsnucue/2/
//Toggle children on click.
function click(d) {
// show is true if children currently hidden
var show = !d.children;
showKids (show, d); // set the visibility of this node's kids
// if on second level node and we want to show children of children
// (don't need to same for hide, hiding intermediate node will do the job)
if (d.depth === 1 && show) {
var arr = d.children || d._children;
// loop through kids and set them to visible
arr.forEach (function(child) {
showKids (true, child);
})
}
update(d);
}
// showKids replaces simple toggle with a show parameter
function showKids (show, d) {
if (!show) {
d._children = d.children;
d.children = null;
} else {
d.children = d._children;
// blank this line as calling showKids with show=true
// twice in a row will end up nulling .children and ._children
// so keep d._children populated.
//
// Same doesn't apply to the 'if' condition above as we don't
// pursue hiding down the tree.
//d._children = null;
}
}
これは、あなたが次の動作を行うことができます:
- クリックして第2レベルのノード上に、3番目と4番目のレベルのノードは、第2レベルのノードに再び
- クリックして表示され、第3回第4レベルのノードが隠されている
- 第2レベルのノードでもう一度クリックすると、第3レベルと第4レベルのノードが表示されます 第3レベルのノードに
- クリックは、4レベルのノードは第2レベルのノードに
- クリックを隠されている、第3レベルのノードは、第2レベルのノードに
- クリック再び隠され、3番目と4番目のレベルのノードは
に示します。上記のコードは必要以上に複雑に思えるかもしれませんが、簡単なトグルでステップ6はステップ4の状態、つまり3番目のレベルのみに戻ります。コード内のロジックは、前の状態にかかわらず第2レベルのノードを拡張するときに常に4レベルのノードが表示されるようにします。
+0
ありがとうございました。この質問にスタックオーバーフローが発生しました。さらに質問を投稿することはできません。 – user1872177
+0
もう1つお願いします。1つを展開するときに他のすべてのノードを折りたたんでいますか? – user1872177
関連する問題
- 1. ExpandableListviewで親ノードをクリックしたときに子ノードを表示する方法は?
- 2. DataTable.WriteXMLと子ノード
- 3. 既存の子ノードに新しい子ノードを追加する方法
- 4. Xpathノードなしのノードの子コンテンツ
- 5. 子ノードのない親ノードを削除
- 6. divノードの子ノードを削除する
- 7. C#XMLreaderと子ノード
- 8. JsTreeノードを開き、子ノードを選択します(json_resultを使用)
- 9. ノードを選択するときに子ノードを省略する
- 10. アクセスした子ノード(アンドロイド)
- 11. 子ノードを親の兄弟の子ノードにコピー
- 12. XSLT後の子ノードで最初の子ノード値を使用
- 13. Jsoup Textノード子
- 14. アクセス子ノードが
- 15. 子ノードの子ノードを削除するPHP domDocument
- 16. 子ノードを表示
- 17. 子ノードをReactComponentに渡す方法
- 18. RSelenium - ノードの子ノード番号とそのxpathを取得する方法
- 19. 子ノードではなく、ノードでテキストを直接選択する
- 20. 子ノードの削除
- 21. xmlの子ノード名
- 22. XSLT子ノード親ノードからコピー
- 23. QTreeWidget(Qt4)とdrag'n'dropを使用した親ノードと子ノードの混在
- 24. 子ノードではなく親ノードの幅広いレイアウト
- 25. 属性vs子ノード
- 26. Telerik MVC - ツリービュー - 子ノード
- 27. DOM4J選択子ノード
- 28. アクセスJSON子ノード - JSON2HTML
- 29. 値は子ノードに
- 30. lxml iterparse mising子ノード
私は4つのノードa(ルートノード)、b、c、d(最後のノード)を持っています。 私の構造はa => b => c => dのようです。ここで私は "b"をクリックすると "c"と "d"の両方を開きたいと思っています。 "b"をクリックすると "c"と "d"が開きます。 b => c => d。 – user1872177
あなたが試したことのコードスニペットまたはjsfiddleを含めてください –
これは私のfiddle https://jsfiddle.net/5dsnucue/1/です。私が第2レベルノードをクリックすると、それは第4レベルノードを直接開く必要があります。 – user1872177