私は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. scrapy:ノードが子ノード
- 2. RigidBodyノードとその子ノードを削除する方法
- 3. ExpandableListviewで親ノードをクリックしたときに子ノードを表示する方法は?
- 4. DataTable.WriteXMLと子ノード
- 5. 既存の子ノードに新しい子ノードを追加する方法
- 6. PHPのDOMトラバースHTMLノードと子ノード
- 7. Xpathノードなしのノードの子コンテンツ
- 8. ツリービューを使用して子ノードに子ノードを追加する
- 9. 子ノードのない親ノードを削除
- 10. divノードの子ノードを削除する
- 11. C#XMLreaderと子ノード
- 12. JsTreeノードを開き、子ノードを選択します(json_resultを使用)
- 13. ノードを選択するときに子ノードを省略する
- 14. Treegrid子ノードから親ノードをチェック/チェック解除する方法
- 15. アクセスした子ノード(アンドロイド)
- 16. firebaseの子ノードの子ノードからデータを取得
- 17. XSLT後の子ノードで最初の子ノード値を使用
- 18. 子ノードを親の兄弟の子ノードにコピー
- 19. Jsoup Textノード子
- 20. アクセス子ノードが
- 21. 子ノードを表示
- 22. 子ノードの子ノードを削除するPHP domDocument
- 23. 親ノードの子ノードにアクセスする方法
- 24. 子ノードをReactComponentに渡す方法
- 25. Firebasedatabase - 子ノードを数える方法
- 26. RSelenium - ノードの子ノード番号とそのxpathを取得する方法
- 27. 他の子ノードと一致する子ノードと最高値を持つノードを取得するXPath
- 28. 親要素をクリックまたはdblクリックするとツリーリストの子ノードを展開する方法は?
- 29. 子ノードではなく、ノードでテキストを直接選択する
- 30. 子ノードのPowershell SelectSingleNode
私は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