Я создал дерево, используя d3 js. Теперь я создал раскрывающееся меню, содержащее список всех узлов в дереве. Теперь, выбрав узел из выпадающего меню, я хочу выделить путь от корня до этого конкретного узла. Как это сделать?Как выделить путь от корня к выбранному узлу в d3 js?
2
A
ответ
1
Сначала сделайте функцию сглаживания, которая сделает иерархические данные в n массиве.
function flatten(root) {
var nodes = [],
i = 0;
function recurse(node) {
if (node.children) node.children.forEach(recurse);
if (node._children) node._children.forEach(recurse);
if (!node.id) node.id = ++i;
nodes.push(node);
}
recurse(root);
return nodes;
}
В окне выбора добавить изменения слушателя, как это:
var select = d3.select("body")
.append("select")
.on("change", function() {
//get the value of the select
var select = d3.select("select").node().value;
//find selected data from flattened root record
var find = flatten(root).find(function(d) {
if (d.name == select)
return true;
});
//reset all the data to have color undefined.
flatten(root).forEach(function(d) {
d.color = undefined;
})
//iterate over the selected node and set color as red.
//till it reaches it reaches the root
while (find.parent) {
find.color = "red";
find = find.parent;
}
update(find);//call update to reflect the color change
});
Внутри вашей функции обновления цвета путь по данным (набор в функции выбора), как это:
d3.selectAll("path").style("stroke", function(d) {
if (d.target.color) {
return d.target.color;//if the value is set
} else {
return "gray"
}
})
Рабочий код here.
Смежные вопросы
- 1. Путь дерева от корня к выделенному узлу - путь Pythonic
- 2. Пытается записать путь от корня xml к указанному узлу
- 3. добавление меток к узлу в d3.js
- 4. d3.js добавить элемент к узлу зависит от объекта
- 5. Прокрутка к выбранному узлу в дереве. Прайсы
- 6. Как найти путь от корня к узлу в xml с помощью C#?
- 7. D3.js: Как выделить узлы в Dendogram с определенным цветом?
- 8. ASP.NET TreeView: возврат к выбранному узлу
- 9. Выделите путь дерево в d3.js
- 10. Как получить путь от корня к данному узлу на любом дереве?
- 11. Поместите все узлы в путь от корня к целевому узлу в стеке
- 12. Подводя вес всех ребер к узлу в D3.js?
- 13. D3 Макет дерева: как выделить весь путь
- 14. Как добавить узел к выбранному узлу в TreeView?
- 15. D3.js: добавить путь к прямоугольнику
- 16. Как сохранить путь к узлу в JTree?
- 17. Как получить полный путь к выбранному узлу в проводнике пакетов из плагина Eclipse?
- 18. Как получить путь к текущему выбранному файлу
- 19. Получить путь к выбранному файлу в Finder
- 20. C# WPF - Добавление дочернего узла к выбранному узлу в treeview
- 21. Как перейти на путь в d3.js
- 22. Найти путь к узлу в дереве?
- 23. d3.js путь d атрибут
- 24. d3 удалять узлы, подключенные к щелканному узлу
- 25. Путь к узлу в двоичном дереве
- 26. Доступ к выбранному узлу дерева интерфейсов из Javascript
- 27. d3 js выделить узлы, содержащие заданную строку
- 28. Получить полный путь к выбранному файлу NSPathControl
- 29. swing JMenu извлекает путь к выбранному элементу
- 30. Cytoscape.js - селектор для ребер, прикрепленных к выбранному узлу
Если в раскрывающемся меню выбран свернутый узел ... путь подсвечивается внутренне, но этот полный путь также должен быть расширен, а при нажатии кнопки сброса дерево должно быть сброшено до оригинала ...... ........... В любом случае, Большое вам спасибо за помощь :) – Jason
Увидимся вопросом. Я ответил. Вы увеличили объем. Я все еще ответил на это. Вы просто не можете заставить меня сделать проект для вас LOL ... Задайте полный ясный вопрос, не расширяйте сферу охвата. Если кто-то ответит, согласитесь с ним. Если у вас есть новый вопрос, задайте новый вопрос в SO. – Cyril
Ok cyril, Большое спасибо .... Я не расширяю сферу действия на самом деле, это то, что я изначально хотел, и это вполне логично .... Принимая ваш ответ :) ..... спасибо много ... Было бы очень приятно, если бы вы могли помочь мне дальше ... Вот новый вопрос: http://stackoverflow.com/questions/37370444/highlight-and-un-highlight-path-from-selected-node-to-root- node-in-a-collapsible – Jason