Схема дерева d3.js: сворачивание других узлов при развертывании одного?

На макете дерева с использованием d3.js (пример) ЯЯ хотел бы свернуть узлы, которые не находятся в той ветке, по которой щелкнули.

Например, в приведенной выше демонстрации попробуйте следующее:

нажмите на "Родитель 1 " (Показаны ребенок 1 и ребенок 2)нажмите на "Детский 1 " (Ребенок 1.1 показан)нажмите на "Ребенок 2 " (Ребенок 2.1 показан)

Теперь вы должны увидеть обоих детейДетский 1 " а также "Ребенок 2 ".

Я хотел бы, чтобы произошло следующее:

нажмите на "Родитель 1 " (Показаны ребенок 1 и ребенок 2)нажмите на "Детский 1 " (Ребенок 1.1 показан)нажмите на "Ребенок 2 " (Ребенок 2.1 показан,Ребенок 1.1 скрыт)

Таким образом, дочерние узлы, кроме "активный» ветка должна быть скрытой.

Как я могу лучше всего подойти к этому? (эффективно, конечно, как ябуду использовать довольно большой набор данных)

Ответы на вопрос(2)

Ваш ответ на вопрос