所以我有一些与拖拽事件监听器绑定的数据:
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
有没有办法这样做?感谢。
答案 0 :(得分:3)
将回调(传递给拖动处理程序的回调)保存在变量中,然后在其他上下文中调用此变量。
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()