如何使用SVG对象显示引导工具提示?

时间:2013-02-04 22:51:38

标签: twitter-bootstrap svg tooltip d3.js

我疯狂地试图理解为什么我可以在常规HTML元素上显示工具提示,而不是在D3生成的SVG上显示:http://jsfiddle.net/nachocab/eQmYX/5/

我做错了什么?

$(document).ready(function () {
    $("a").tooltip({
      'placement': 'bottom'
    }); // this works

    $("my_circle").tooltip({
      'placement': 'bottom'
    }); // this does not work
});

2 个答案:

答案 0 :(得分:55)

问题在于Bootstrap v2.2.2生成的工具提示是<div>,它被插入<svg>内部,导致浏览器无法呈现它。

我最终使用Bootstrap Tooltip的最新开发版本,它添加了一个新参数来确定工具提示的容器。现在我可以做:

$(".my_circle").tooltip({
    'container': 'body',
    'placement': 'bottom'
}); // this works!

编辑 - 一年后

为了记录,我删除了jQuery要求,现在我正在使用Justin Palmer的优秀d3-tip

答案 1 :(得分:4)

使用d3-bootstrap库。 该库将为您提供与D3.js兼容的警报,弹出窗口和工具提示功能 您可以将以下代码添加到jsFiddle。

将此添加到您的头部。

<script src="https://github.com/shawnbot/d3-bootstrap/blob/master/d3-bootstrap.js"/>

在代码部分添加此内容。

d3.selectAll(".my_circle")
    .call( d3.tooltip().placement("right") );