我下面這個例子不工作拖動圈:D3.js將增加單時
https://bl.ocks.org/mbostock/6123708
我無法理解的事情是當單擊按鈕時,我都不可能增加新的社交圈,例如:
d3.tsv("dots.tsv", dottype, function (error, dots) {
container.append("g")
.attr("class", "dot")
.selectAll("circle")
.data(dots)
.enter().append("circle")
.attr("r", 5)
.attr("cx", function (d) {
return d.x;
})
.attr("cy", function (d) {
return d.y;
})
.call(drag);
});
function dottype(d) {
d.x = +d.x;
d.y = +d.y;
return d;
}
self.addNode = function() {
container.append('g')
.attr('class', 'dot')
.append('circle')
.attr('r', 35)
.attr('cx', (i * 100) + cx)
.attr('cy', (i * 100) + cy)
//.style('fill', 'purple')
.call(drag);
i++;
};
第一部分是相同的例子中,我然後創建了一個函數來添加所述容器內的單圈,問題是,當我拖動新添加的圓我可以僅移動外部G元素,從而移動每個o一起圈。
我不明白爲什麼,因爲功能都是一樣的(我刪除甚至風格「補」,以確保)
您可以分享您已經完成的關於如何將新節點添加到d3佈局的研究嗎?例如:https://bl.ocks.org/mbostock/1095795。你必須更新你的圖形數據。你在做什麼只是添加一個html元素到你的容器元素,並會在d3渲染你的新svg後消失。 – echonax
我剛剛做了你所說的,我沒有意識到partiuclar佈局,因爲我沒有看到任何d3函數,只是tsv來讀取數據。 也許我錯過了什麼?我的代碼完全錯了嗎? – Gianmarco