我使用这个例子作为基础: 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 链接