在 d3 树中加载时折叠特定节点
collapse specific nodes on load in d3 tree
嗨,我更新了我的问题,我还包括了一个有效的 jsfiddle,可以清楚地看到我想做什么....http://jsfiddle.net/elviz/Ge58Q/15/
nodeEnter.append("text")
.attr("dy", 3.5)
.attr("dx", 5.5)
.attr("x", barWidth +20)
.text(function(d) { return d.redirect_info; })
.on("click", function(d){
// using the value in d.redirect
//search for the node with item_id equal to d.redirect
//after finding that node input in update to draw
});
上面的代码我创建了一个文本并附加了一个 onclick 事件......如果文本被点击我想要的是使用 d.redirect 的值寻找具有 [=18= 的节点] 等于 d.redirect 然后在更新函数中输入该数组以绘制树......在我的示例中,如果单击文本 redirect_9_node_simple 它将绘制从 ROOT 到 THE 的节点节点简单,如果单击文本 redirect_13_node_alluring,我想从 ROOT UP 到 ALLURING NODE 绘制树。请注意,请向右滚动,因为文本 link 位于矩形
右侧 20px
您可以按如下方式隐藏节点的子节点:
function collapseSingle(node) {
if (node.children) {
node._children = node.children;
node.children = null;
}
}
现在,如果您想显示节点的子节点,您可以这样做:
function expandSingle(node) {
if (node._children) {
node.children = node._children;
node._children = null;
}
}
因此,在隐藏所有子节点后显示节点 2
- cluster
和 graph
节点的子节点:
flare.children.forEach(collapse);
flare.children.forEach(expandSingle);
flare.children 仅包含一个节点 2
并且其子节点将可见(请参阅第 37 行和第 47 行 http://jsfiddle.net/Ge58Q/10/)。在这种情况下,行 flare.children.forEach(expandSingle)
可以替换为 expandSingle(flare.children[0])
... flare.children[0] 是节点 2
嗨,我更新了我的问题,我还包括了一个有效的 jsfiddle,可以清楚地看到我想做什么....http://jsfiddle.net/elviz/Ge58Q/15/
nodeEnter.append("text")
.attr("dy", 3.5)
.attr("dx", 5.5)
.attr("x", barWidth +20)
.text(function(d) { return d.redirect_info; })
.on("click", function(d){
// using the value in d.redirect
//search for the node with item_id equal to d.redirect
//after finding that node input in update to draw
});
上面的代码我创建了一个文本并附加了一个 onclick 事件......如果文本被点击我想要的是使用 d.redirect 的值寻找具有 [=18= 的节点] 等于 d.redirect 然后在更新函数中输入该数组以绘制树......在我的示例中,如果单击文本 redirect_9_node_simple 它将绘制从 ROOT 到 THE 的节点节点简单,如果单击文本 redirect_13_node_alluring,我想从 ROOT UP 到 ALLURING NODE 绘制树。请注意,请向右滚动,因为文本 link 位于矩形
右侧 20px您可以按如下方式隐藏节点的子节点:
function collapseSingle(node) {
if (node.children) {
node._children = node.children;
node.children = null;
}
}
现在,如果您想显示节点的子节点,您可以这样做:
function expandSingle(node) {
if (node._children) {
node.children = node._children;
node._children = null;
}
}
因此,在隐藏所有子节点后显示节点 2
- cluster
和 graph
节点的子节点:
flare.children.forEach(collapse);
flare.children.forEach(expandSingle);
flare.children 仅包含一个节点 2
并且其子节点将可见(请参阅第 37 行和第 47 行 http://jsfiddle.net/Ge58Q/10/)。在这种情况下,行 flare.children.forEach(expandSingle)
可以替换为 expandSingle(flare.children[0])
... flare.children[0] 是节点 2