d3.js treemap新数据不呈现

时间:2012-03-27 16:18:23

标签: javascript d3.js treemap

这是我第一次尝试d3.js,我无法弄清楚如何重绘树形图。我正在尝试使用json请求将新数据加载到treemap example。我已将以下代码添加到我的treemap.js中。

d3.select(".search_field").on("click", function(){
    d3.json("/applications.json?search=Applejuice", function(json) {
        div.data([json]).selectAll("div")
            .data(treemap.nodes)
            .enter().append("div")
            .attr("class", "cell")
            .style("background", function(d) { return d.children ? color(d.name) : null; })
            .transition()
            .duration(1500)
            .call(cell);
   }); 
});

我在请求完成后检查了var div,并且数据正确加载到对象中。

1 个答案:

答案 0 :(得分:2)

您正在追加新元素,而不是更新现有元素。这条线

.enter().append("div")

负责处理此问题,如果要更新现有数据,则应将其删除。在.enter()之后调用.data()将为您提供以前不存在的数据,.exit()不再存在的数据。如果发现旧数据和新数据未正确合并,则可以使用.data()的可选第二个参数来提供合并功能。