0
基本上,我想要做的是要合并这两个例子:D3.js力布局拖/缩放/平移和连接节点的能力
http://bl.ocks.org/mbostock/6123708
http://bl.ocks.org/benzguo/4370043
我想使用一个按键来选择,如果我想将一个节点,或者画一条线,像这样:
function dragstarted(d) {
d3.event.sourceEvent.stopPropagation();
if (d3.event.sourceEvent.ctrlKey) {
// drag a line
} else {
// drag the node
}
}
的dragstarted函数被调用于dragstart
事件。在这种情况下,我应该停止此节点的拖动事件,但我不知道如何。我试过打电话
d3.select(this).on('.drag', null);
没有结果。
另一种选择是订阅每个节点到mousedown.drag
使用此项功能:
function dragDecisor(d) {
if (d3.event.ctrlKey) {
console.log('Draw a line...');
} else {
console.log('Drag a node...');
}
}
但后来我需要让拖动事件传播,而且似乎还没有一个明确的方式来做到这一点。我试图创建一个事件,如mbostock(我不能发布更多链接,请参阅d3 issue#100)解释。
有什么建议吗?
酷!我没有意识到第二个例子是使用d3 v2。随着v3我遇到一些问题,因为它似乎我不能使用vis对象上的调用函数。你知道如何解决这个问题吗? –
是啊真正的V3有一些问题,超出了我的修复:) – Cyril