javascript - 给 svg :g element in D3. js 添加一个 title 属性

标签 javascript jquery svg d3.js treemap

我正在使用 D3.js 构建一个在 TreeMap 中显示数据的应用程序。理想情况下,我想要的是为 TreeMap 提供一个工具提示,以在 TreeMap 的每个节点上显示更多信息。树形图从 .JSON 文件中获取数据。

我目前正在使用 jquery 插件 Poshy Tip,我可以在其中通过 title= 属性传递此信息。我知道我需要以某种方式将 title 属性添加到 TreeMap 中的 svg:g 元素,但我不知道在哪里设置每个节点的 title attr。

这是我的脚本的开头,我在其中进行所有声明等...

<div id="chart"></div>
<script type="text/javascript">
var tree = d3.layout.tree()
.size([h, w - 160]);

var diagonal = d3.svg.diagonal()
.projection(function(d) { return [d.y, d.x]; });

var vis = d3.select("#chart").append("svg:svg")
.attr("width", w)
.attr("height", h)
.append("svg:g")
.attr("transform", "translate(40,0)");

d3.json("test.json", function(json) {
  json.x0 = 800;
  json.y0 = 0;
  update(root = json);
});

这是我在头部使用 poshytip() 的方式

$(function(){
  $('node').poshytip({slide: false, followCursor: true, alignTo: 'cursor', 
    showTimeout: 0, hideTimeout: 0, alignX: 'center', alignY: 'inner-bottom',
    className: 'tip-twitter'});
}

几乎我只是希望能够将鼠标悬停在交互式树形图中的各个项目上并弹出一个工具提示..但我没有任何运气。如何将每个项目设置为具有特定的 ID。我是否在 .JSON 文件中执行此操作?有没有更简单的方法来做到这一点?我会以错误的方式解决这个问题吗?任何帮助都会很棒。

最佳答案

var vis = d3.select("#chart").append("svg:svg")
.attr("width", w)
.attr("height", h);

var yourGElement = vis.append("svg:g").attr("transform", "translate(40,0)");

yourGElement.append("svg:title").text("Your tooltip info");

关于javascript - 给 svg :g element in D3. js 添加一个 title 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11462029/

相关文章:

javascript - Angular - 方法不等待从 Firebase 获取值

javascript - 用 Selenium 刮和点击表格

javascript - 拖动节点时调整 viewBox 的大小

javascript - 在下拉选择菜单中获取所有值?

javascript - Chrome 扩展程序 : sendResponse returning empty object

javascript - 动态创建的类行不通过 jQuery .each() 进行迭代?

javascript - angularjs 使用具有两个 View 的单个 Controller

javascript - DataTable JS 插入问题

javascript - 使用 snap.svg 悬停时使用动画放大/缩小

html - 如何使剪辑路径在 Microsoft Edge 上工作?