0

我打算使用 d3js 树布局在屏幕上显示交互式树。

首先,是否有任何关于 d3js 树布局使用的教程或深入文档。

其次,我想控制单击树的节点时的事件。我希望使用此事件在屏幕上显示有关该节点的更多详细信息/属性。所以我需要被点击的节点的 ID。

据我所知,toggle下面提到的一种方法在单击节点以显示/隐藏该节点的子节点时被调用。

// Toggle children.
function toggle(d) {
//alert();
 if (d.children) {
   d._children = d.children;
   d.children = null;
 } else {
   d.children = d._children;
   d._children = null;
 }
}

但问题是当我取消注释时alert(),树没有显示在屏幕上。这是否意味着除了从 d3js 获得的代码之外,用户不能拥有任何代码?另外我该如何处理点击事件?

4

1 回答 1

1

您必须注册活动

nodeEnter = node.enter().append('svg:g')
.attr('class', (d) ->
    if d.children?.length > 0 or d._children?.length > 0 then 'node' else 'leaf node'
)
.attr('transform', (d) -> 'translate(' + source.y0 + ',' + source.x0 + ')' )
.on('click', (d) -> 
    toggle(d)
    update(d)
    )
于 2012-10-04T20:40:18.883 回答