D3js网络图 - 仅点击点击

时间:2017-03-13 18:17:09

标签: javascript d3.js

我有一个网络图表,我希望节点在用户点击它们时显示更多信息。我希望图表也有拖动/移动行为。

但我似乎无法让他们两个都玩得很好。当我拖动时,它是唯一一个触发并且忽略点击的人。如果我注释掉拖动行为,则点击按预期工作。

这是我的阻止:https://bl.ocks.org/Ognami/fe2757512bb709b22b826f0f48f9f247

我认为拖拽只会注意超过500毫秒的mousedown,但似乎每次都会立即拖延?感谢您的想法!

1 个答案:

答案 0 :(得分: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/