有没有办法一起访问输入和更新选择?

时间:2014-01-17 12:39:42

标签: javascript d3.js

使用d3.js时,这似乎是一种常规模式:

function getAttr(d,i) { ... }

things = container.selectAll("selector").data(data);
things.attr("attr", getAttr);
things.enter().append("selector").attr("attr", getAttr);

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

是的,在D3的最新版本中,.enter()选择在您处理完后会合并到更新选择中。也就是说,而不是

things = container.selectAll("selector").data(data);
things.attr("attr", getAttr);
things.enter().append("selector").attr("attr", getAttr);

你可以写

things = container.selectAll("selector").data(data);
things.enter().append("selector");
things.attr("attr", getAttr);

不是那么短,但如果您设置了大量不同的属性,处理程序等,它会为您节省相当多的代码。