Javascript 树形图:一页多个

Javascript 树形图:一页多个,javascript,d3.js,tree-structure,Javascript,D3.js,Tree Structure,我试图放置2个d3.js树图,如图所示 在一页上。这两个树都将加载来自Javascript对象的不同数据。第一个将出现在: <div id="chart"></div> 树2: var vis = d3.select("#chart2").append("svg:svg") 其他一切都保持不变,包括变量名和函数名。 这非常有效,两个图都显示了它们应该显示的内容,除了单击功能(代码中的最后一个功能:)之外,只有第二棵树能够在单击树节点时折叠和展开,第一棵树不再能够这样做

我试图放置2个d3.js树图,如图所示 在一页上。这两个树都将加载来自Javascript对象的不同数据。第一个将出现在:

<div id="chart"></div>
树2:

var vis = d3.select("#chart2").append("svg:svg")
其他一切都保持不变,包括变量名和函数名。 这非常有效,两个图都显示了它们应该显示的内容,除了单击功能(代码中的最后一个功能:)之外,只有第二棵树能够在单击树节点时折叠和展开,第一棵树不再能够这样做,第一棵树不再是交互式的


我该如何解决这个问题

绘制交互所依赖的第二棵树时,您正在覆盖
vis
变量。如果要创建多个图表,则需要创建一个闭包,以便每个树都在其自己的范围内。这样他们就不会互相干扰了

Mike写了一篇很好的帖子,是关于在网站上创建可重用图表的。他完成了创建闭合和表面特性的过程

var vis = d3.select("#chart").append("svg:svg")
var vis = d3.select("#chart2").append("svg:svg")