对于d3行为,除默认侦听器外,添加其他操作的最佳方法是什么?例如,如果我想在d3.behaviors.drag
上使用dragstart
执行某些操作,那么这就是我正在做的事情:
var drag = d3.behaviors.drag();
var originalDragstart = drag.on("dragstart");
drag.on("dragstart", function(d) {
originalDragstart.call(this, d);
// do other stuff
});
答案 0 :(得分:0)
您通常会对它们进行扩充,on
将回调作为第二个参数,您可以在其中定义自定义逻辑。因此,您可以采取类似drag
之类的内容并执行:
drag.on("drag", function(d) {
// Move something
d3.select(this)
.attr("x", function(d) { return d.x; })
.attr("y", function(d) { return d.y; });
});