使用d3.js时,这似乎是一种常规模式:
function getAttr(d,i) { ... }
things = container.selectAll("selector").data(data);
things.attr("attr", getAttr);
things.enter().append("selector").attr("attr", getAttr);
有更好的方法吗?
答案 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);
不是那么短,但如果您设置了大量不同的属性,处理程序等,它会为您节省相当多的代码。