我有一个网络图表,我希望节点在用户点击它们时显示更多信息。我希望图表也有拖动/移动行为。
但我似乎无法让他们两个都玩得很好。当我拖动时,它是唯一一个触发并且忽略点击的人。如果我注释掉拖动行为,则点击按预期工作。
这是我的阻止:https://bl.ocks.org/Ognami/fe2757512bb709b22b826f0f48f9f247
我认为拖拽只会注意超过500毫秒的mousedown,但似乎每次都会立即拖延?感谢您的想法!
答案 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))