d3.js を使用したツリー レイアウト ( example ) で、クリックされたブランチにないノードを折りたたみたいと思います。
たとえば、上記のデモでは、次のことを試してください。
- 「親 1」をクリックします (子 1 と子 2 が表示されます)。
- 「子 1」をクリックします (子 1.1 が表示されます)。
- 「子 2」をクリックします (子 2.1 が表示されます)。
これで、"Child 1" と "Child 2" の両方の子が表示されるはずです。
次のことを実現したいと思います。
- 「親 1」をクリックします (子 1 と子 2 が表示されます)。
- 「子 1」をクリックします (子 1.1 が表示されます)。
- 「子 2」をクリックします (子 2.1 が表示され、子 1.1 は非表示になります) 。
したがって、「アクティブな」ブランチ以外のノードの子は非表示にする必要があります。
どうすればこれに最もよくアプローチできますか?(もちろん、かなり大きなデータセットを使用するので効率的です)