我有一个(相当简单的)问题:如何在D3.js做出的选择上“取消调用” force.drag?假设我创建了一组元素,并在其上调用了“call”,从而为它提供了力导向布局的拖动回调。看起来像这样:

    d3.selectAll('rect').call(force.drag);

现在,以后可以从某些节点中删除该行为了。我的方法包括使用重置各种监听器,例如“单击”,“拖动”等。
    d3.select('rect#no-drag').on('click', null);

他们都没有工作。有人知道如何删除回调吗?

最佳答案

你近了。拖动事件由带有名为mousedown的命名空间的drag事件启动。另请:https://github.com/mbostock/d3/blob/master/src/behavior/drag.js#L5

因此,要删除此内容,您可以执行以下操作:

d3.select('rect#no-drag').on('mousedown.drag', null);

关于javascript - D3.js:从选择中删除force.drag,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13136355/

10-08 21:04