2012-04-14 29 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

相关问题