Я работаю с этой Дендрограммы + сгруппированная горизонтальная гистограмма , и я хочу, чтобы она была интерактивной, при нажатии на узел я хочу, чтобы он свернулся или развернулся как дерево.
Для этого я сначала устанавливаю данные в глобальную переменную:
let myData;
d3.csv("employee.csv", row, function(error, data) {
if (error) throw error;
myData = data;
После того, как я переместил весь код для генерации, установите svg в функции обновления.
Затем я добавляю событие щелчка наузел выглядит так:
node.on("click", click);
[...]
function click(d) {
if (d.children != null) {
console.log('children = null');
d._children = d.children;
d.children = null;
} else {
console.log('children = _children');
d.children = d._children;
d._children = null;
}
removeCurrentGraph();
update(myData);
Следующим шагом является удаление всего графика через
svg.selectAll("path.link").remove();
svg.selectAll("g.node").remove();
и повторное обновление.
Вот всекод
Моя проблема в том, что весь график отрисовывается со всеми узлами, даже если я установил дочерние элементы в нуль.
Я не уверен, что я здесь делаю не так?
Спасибо!