表示文本字段中最近单击的D3节点

时间:2016-01-05 00:55:48

标签: d3.js

观察这棵美丽的,可折叠的桡骨树(不是我的作品):

http://codepen.io/fernoftheandes/pen/pcoFz

这里有一小部分数据:

var pubs =
{
    "name": "AUT-1",
    "children": [
        {
            "name": "PUB-1","children": [
                {"name": "AUT-11","children": [
                    {"name": "AFF-111"},
                    {"name": "AFF-112"}
                ]},

我想添加一个额外的维度,如ID:

{"name": "AFF-111", id:"aff_111"},

棘手的部分是我想在文本字段中显示最近点击的节点的ID(如果有的话)。这是可能的还是我推动合理的D3行为的界限?

干杯,

萨姆

1 个答案:

答案 0 :(得分:1)

您可以在节点单击侦听器函数中添加代码,以显示每个节点的ID信息。具体做法是:

function click(d) {
  d3.select("#text").html("<p>" + d.id + "</p>")
  if (d.children) {
    d._children = d.children;
    d.children = null;
  } else {
    d.children = d._children;
    d._children = null;
  }

 update(d);
}

示例plunkr here。 (我只添加了'Pub-6节点'的id数据,在源数据中添加'id'后,其余的节点也一样。)