Javascript D3标签到可拖动圆

Javascript D3标签到可拖动圆,javascript,d3.js,Javascript,D3.js,我正在尝试使用d3绘制带有标签的圆形元素。 我应该能够拖动一个带有标签的圆圈 任何建议都将不胜感激。 由于这是D3 v3,正确的功能是: d3.behavior.drag() 除此之外,要拖动带有相应文本的圆圈,更好的方法是将circle和text附加到一个组中: const node = svg.selectAll('.g') .data([{1:1},{2:2}]) .enter().append('g').attr("transform", function(){

我正在尝试使用d3绘制带有标签的圆形元素。 我应该能够拖动一个带有标签的圆圈

任何建议都将不胜感激。


由于这是D3 v3,正确的功能是:

d3.behavior.drag()
除此之外,要拖动带有相应文本的圆圈,更好的方法是将
circle
text
附加到一个组中:

const node = svg.selectAll('.g')
    .data([{1:1},{2:2}])
    .enter().append('g').attr("transform", function(){
        return "translate(" + Math.random() * 100 + "," 
        + Math.random() * 100 + ")"
});

node.append("circle").attr('r', 15);

node.append('text')
    .attr("dx", 16)
    .text("test")
并将拖动调用到该组:

node.call(d3.behavior.drag()
    .on('drag', dragmove));

function dragmove(d) {
    d3.select(this).attr("transform", function(){ 
        return "translate(" + d3.event.x + "," + d3.event.y + ")"
    })
}
以下是更新的小提琴:

node.call(d3.behavior.drag()
    .on('drag', dragmove));

function dragmove(d) {
    d3.select(this).attr("transform", function(){ 
        return "translate(" + d3.event.x + "," + d3.event.y + ")"
    })
}