2014-10-31 71 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頻道上的人幫助我弄清楚這一點!