我在 d3 中使用强制导向布局,但在开发中遇到了一些障碍。
var circle = svg.append("svg:g").selectAll("circle")
.data(force.nodes())
.enter().append("svg:circle")
.attr("r", function( d ) {
return d.fValue;
})
.style('fill', function( d ) {
return strokeColor( d.name );
})
.call(force.drag);
基本上,我想向 force.drag 定义的“拖动”行为添加更多事件侦听器 - 即,我想确保节点在拖动时改变颜色(而不是在鼠标悬停时)。我能想到的唯一两种方法是以某种方式更改 force.drag 函数或定义新的拖动行为。
我不知道第一种方法是怎么做的,但是当我尝试第二种方法时,方法链接只会接受第二个拖动事件,而忽略第一个 force.drag 事件。
.call(customDrag)
.call(force.drag); // This would work
如何附加另一个拖动事件侦听器或修改现有 force.drag 以适应我要添加的新动画?
提前致谢