2012-04-14 30 views
0

我想添加Tipsy懸停彈出式窗口到我簡單的3節點強制有向圖。爲什麼使用Tipsy打破我製作的由d3生成的力指向圖?

然而,增加的醉意的JavaScript似乎崩潰我的javascript: http://goo.gl/BeYls

Chrome網上應用開發者控制檯中指出:

Uncaught TypeError: Object [object SVGCircleElement],[object SVGCircleElement],[object SVGCircleElement] has no method 'tipsy'

我相信,應用無醉意代碼的其餘部分工作(因爲取出78-85行修復了這個應用程序),並且我已經包含了JavaScript文件。

具體來說,下面是我寫的代碼,用於向DOM中的每個節點添加Tipsy彈出窗口。

node.tipsy({ 
    gravity: 'w', 
    html: true, 
    title: function() { 
    var d = this.__data__, n = d.name; 
     return 'Hi there! My name is <b>' + n + '</b>'; 
    } 
    }); 

爲什麼它壞了?節點不是DOM元素嗎?

+1

是不是醉了一個jQuery插件?在這種情況下,您將不得不將節點包裝到jQuery函數調用中:$(node) – aefxx 2012-04-14 23:13:45

回答

3

Tipsy是一個jQuery插件。你需要將它應用於jquery選擇器,而不是d3選擇器。由於你的圈子有CSS類節點,這應該工作:

$(".node").tipsy({ ... }); 
+0

謝謝,那就是訣竅!有意義的是,對象應該是由jQuery工廠函數返回的選擇器。 – dangerChihuahua007 2012-04-14 23:27:14

相關問題