2014-10-31 62 views
0

我想拖动我的图表,但我只有dragstart和dragend事件。d3拖动事件导致TypeError

一些奇怪的是,如果我使用.origin方法作为例子,它抛出一个异常(遗漏的类型错误:无法读取属性“X”的未定义):

this._drag = d3.behavior.drag() 
//.origin(function(d) { return d;}) //if uncommented, throws error! 
.on("drag", function(d){console.log("drag!", d); self.on_drag(this);}) 
.on("dragstart", function(){self.on_drag_start(this);}) 
.on("dragend", function(){self.on_drag_end(this);}) 
; 
+0

那么您的数据可能不是正确的格式。你看过文档吗? – 2014-10-31 14:52:57

回答

0

与原点的问题是这是由于我试图拖动不是图表本身的一部分的svg元素,而是我单独添加的装饰器项(模拟图标)的事实造成的。因此,该元素没有数据(d是未定义的),但是如果您返回具有x和y属性的自定义对象,则可以正常使用拖动行为。

感谢#d3.js irc频道上的人帮助我弄清楚这一点!