2013-02-04 26 views
25

私はD3-生成SVGsに通常のHTML要素にツールチップを表示することはできませんが、理由を理解しようとしておかしくなりそうだ:http://jsfiddle.net/nachocab/eQmYX/5/SVGオブジェクトでブートストラップのツールチップを表示するにはどうすればよいですか?

私が間違って何をしているのですか?

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

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

jQueryはSVGでうまく再生されません。 https://github.com/shawnbot/d3-bootstrapを試してください – Duopixel

+0

まだd3-bootstrapプロジェクトを見ていないのですが...可能であれば、svgのを使用する必要があります。 http://jsfiddle.net/BCsGc/1/ – mg1075

+0

@nachocab - たぶん私は何かを完全に見逃していますが...あなたはレフックスから答えを受け入れました。ブートストラップツールチップが生成されて表示されていることの実例がありますか?まず、lephixは "d3.tooltip()"を持っていますが、間違っていると思います: "bootstrap.tooltip()"である必要があります。 http://jsfiddle.net/7bNgC/11/確かに、ツールチップが生成されていますが、まだ見えません。 – mg1075

答えて

51

問題は、ブートストラップv2.2.2が生成するツールチップは、ブラウザがそれをレンダリングしないように<svg>、内部に挿入されたばかり<div>であるということでした。

最新の開発バージョンBootstrap Tooltipを使用しましたが、これは新しいパラメータを追加してツールチップのコンテナを決定します。今、私にできること:

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

EDIT - 一年後

を記録するために、私はjQueryの要件を落とし、私は今、ジャスティン・パーマーことにより、優れたd3-tipを使用しています。

+0

明らかに '$("。my_circle ")'、ドット付きです。 – krawyoti

+0

私はここで間違っていますか?それは動作しないようです。 http://jsfiddle.net/selvaG/eQmYX/39/ – selvagsz

+1

私はあなたのjsfiddleを更新しました。あなたは$( 'svg circle')を使ってすべてのsvgサークルエレメントにアタッチできます。tooltip ... http:// jsfiddle。 net/eQmYX/41/ –

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")); 
+0

それは動作していないようです。mg1075のコメントjsfiddle.net/7bNgC/11を参照してください。 – nachocab

+0

SVG要素では機能しません – superphonic

関連する問題