javascript - 如何以编程方式触发 D3 拖动事件?

标签 javascript d3.js

所以我有一些数据与拖动事件监听器绑定(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/

相关文章:

javascript - 在 Vue 中处理 <picture> srcset 属性的正确方法

javascript - 获取点击元素的 ID 并将其包含在纯 JS 的函数中?

javascript - 如何从 facebook javascript SDK 获取个人资料图片?

JavaScript 数独求解器。之前的数字是哪里来的?

d3.js - 同一页面上的两个圆环图

javascript - 我的正则表达式替换函数有什么问题?

javascript - 带有自定义日期的数据dimple.js

javascript - 带有可点击图例的 D3 多系列折线图

javascript - 让 d3 矩形跨越整行

javascript - 消除矩形中间的边界半径