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