2017-03-13 7 views
0

ユーザーがクリックしたときに詳細情報を表示するネットワークグラフがあります。グラフにもドラッグ/移動の動作が必要です。D3jsネットワークグラフ - クリック時に火をドラッグします

しかし、私はそれらの両方を素敵にすることはできません。ドラッグすると、それが唯一発生し、クリックは無視されます。ドラッグ操作をコメントアウトすると、クリックは意図したとおりに機能します。ここで

は私のブロックです:https://bl.ocks.org/Ognami/fe2757512bb709b22b826f0f48f9f247

私はドラッグだけで500msのか何かの上にマウスダウンするために注意を払っていると考えたが、それだけで、すぐにすべての時間をドラッグして行くようですか?あなたの考えは高く評価されています!

答えて

0

クリックイベントとドラッグイベントを組み合わせたい場合は、クリックイベントでストップ伝播を呼び出すことができます。

だからあなたのコード内の添付イベントが、次のようになります。

node = node.enter().append("g") 
.attr("class", "node") 
.merge(node) 
.on("click", function(d, i) { 
    d3.event.stopPropagation(); 
    loadInfo(d, i); 
}) 
.call(d3.drag() 
    .on("start", dragstarted) 
    .on("drag", dragged) 
    .on("end", dragended)) 

例:http://jsfiddle.net/5zyk6zkd/

関連する問題