我有一个(相当简单的)问题:如何在D3.js的选择上“un-call”force.drag?假设我创建了一组元素,并在其上调用“调用”,给它一个强制导向布局的回调.看起来像这样:
d3.selectAll('rect').call(force.drag);
现在可以从以后的某些节点中删除该行为.我的方法包括重新设置各种听众,如“点击”,“拖动”等
d3.select('rect#no-drag').on('click',null);
他们都没有工作.有人知道如何清除回调?
解决方法
你很近拖动事件由具有名为drag的命名空间的mousedown事件启动.见:
https://github.com/mbostock/d3/blob/master/src/behavior/drag.js#L5
所以,要删除这个你可以做的:
d3.select('rect#no-drag').on('mousedown.drag',null);