所以我有一些数据与拖动事件监听器绑定(bind):
myNodes.enter()
.append("svg:g")
.call(d3.behavior.drag()
.on("drag", function() {
console.log(d3.event.dx, d3.event.dy);
})
);
现在我想以编程方式在某个节点上调用这个 onDrag 函数。我确实知道通过做标准事件也是可能的
aNode.on("click")() // works
aNode.on("drag")() // doesn't work
有什么办法吗?谢谢。
最佳答案
将回调(您传递给拖动处理程序的回调)保存在一个变量中,然后在您的其他上下文中调用该变量。
var dragCallback = function(){
console.log(d3.event.dx, d3.event.dy);
};
var dragBehavior = d3.behavior.drag()
.on("drag", dragCallback);
myNodes.enter()
.append("g")
.call(dragBehavior);
//Call drag method programmatically
dragCallback()
关于javascript - 如何以编程方式触发 D3 拖动事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14537492/