2014-01-17 43 views
0

這似乎是我的一個規律使用d3.js時:有沒有辦法一起訪問和更新選擇?

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

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

有沒有更好的方式來做到這一點?

回答

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); 

這並不是說要短得多,但它可以節省你不少的代碼,如果你設置了大量不同的屬性,處理程序,等等。

+0

這正是我所期待的。謝謝 – user59169

相關問題