我使用此示例作为基础: http : //mbostock.github.io/d3/talk/20111018/tree.html

在我的代码中,我首先折叠了所有节点,并且用户可以像演示中一样单击分支来导航树。

为了方便用户,我想使用jQuery切换展开/折叠根的所有子级。 下面的代码将仅切换根的直接子代。

我已经尝试了许多选项,但是无法确定正确的功能。 任何帮助,将不胜感激。

$('.clicktoexpandALL').click(function(){
    toggle(root);
    update(root);
});

我已经尝试过toggle(root.children[0])toggle(root.children[1].children[2]); 无济于事。

编辑:更新的问题。

如果我可以访问toggleAll(d)函数,则可以执行我想要的操作,但是简单的函数调用将无法工作。

d3.json(“ json / results.json”,function(json){root = json; root.x0 = h / 2; root.y0 = 0;

function toggleAll(d) {
  if (d.children) {
    d.children.forEach(toggleAll);
    toggle(d);
  }
}

// Initialize the display to hide nodes.
root.children.forEach(toggleAll);

update(root);

});

添加的JSFIDDLE链接

使用代码http://jsfiddle.net/chrisloughnane/vV3Sc/

全屏http://jsfiddle.net/chrisloughnane/vV3Sc/show/

===============>>#1 票数:1 已采纳

我认为您需要使用方法toggleAll ,该方法可以切换根节点及其下的子节点:

function toggleAll(d) {
  if (d.children) {
    d.children.forEach(toggleAll);
    toggle(d);
  }
}

toggle方法将隐藏/显示根的属性children ,但不隐藏/显示其他节点的子级。

  ask by chris loughnane translate from so

未解决问题?本站智能推荐:

关注微信公众号