d3 - 向现有听众附加行动?

时间:2015-07-16 09:46:01

标签: javascript d3.js

对于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
});

1 个答案:

答案 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; });
});