0
在我的代碼中,我的更新選擇始終爲空,我的退出選擇也是如此,所以轉換從不運行。每次刷新時,我最終都會重新繪製整個DOM片段,就好像它之前從未存在過的一樣(即,我可以刪除所有內容,但.enter並且行爲不會更改)。D3中的更新選擇爲空
我正在利用data()中的一個關鍵函數來確保連接是按唯一值而不是按位置進行的。
整個代碼爲http://jsfiddle.net/colin_young/xRQjX/23/,但我已經提取什麼,我認爲是相關部門在這裏(基本上,我只是想跟隨General Update Pattern):
var key = function (d) {
return d.index;
}
var filterDistance = function() {
var names = list.selectAll("div")
.data(byDistance.bottom(40), key);
// Update
names.attr("class", "update");
// Add
names.enter()
.append("div")
.attr("class", "enter")
.style("opacity", "0")
.transition()
.duration(500)
.style("opacity", "1")
.text(function (d) {
return displayText(d);
});
// Remove
names.exit()
.transition()
.duration(750)
.style("opacity", "0")
.remove();
};