37
我有一個場景,我想使用數據連接爲每個數據元素追加2個新元素。可以輸入()選擇在追加/插入後重用嗎?
我原本是做這樣的事情:
var y = d3.selectAll("line")
.data([123, 456]);
y.enter().append("line"); // assume attr and style set
y.enter().append("line");
y.transition()...
之前,我想通了,我期待在我的過渡使用更新選擇將包含合併從輸入選擇追加。但是,這當然不起作用,因爲每個數據元素的選擇只有一個插槽。
所以我改變了代碼,使它仍然使用兩次相同的enter()選擇,但是爲了進行轉換而重新選擇新元素。
這種方法的工作,但我的問題是這是否是一個推薦的方式去做的事情。在添加/插入後,我應該確保停止使用enter()嗎?或者是否可以使用它來創建多個元素,只要我記得更新選擇將只包含最後創建的元素?
如果確實發現這是錯誤的,有什麼更好的方法來實現這一點?