2013-02-04 46 views
25

tôi sẽ điên cố gắng tìm hiểu tại sao tôi có thể hiển thị tooltips trên các yếu tố HTML thông thường, nhưng không phải trên SVGs D3 tạo: http://jsfiddle.net/nachocab/eQmYX/5/Làm cách nào để hiển thị chú giải công cụ khởi động với đối tượng SVG?

Tôi đang làm gì sai?

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

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

jQuery không hoạt động tốt với SVG. Hãy thử https://github.com/shawnbot/d3-bootstrap – Duopixel

+0

Chưa xem xét dự án d3-bootstrap ... Nếu có thể, bạn có thể phải sử dụng của svg. http://jsfiddle.net/BCsGc/1/ – mg1075

+0

@nachocab - Có lẽ tôi hoàn toàn thiếu một cái gì đó, nhưng ... Bạn chấp nhận câu trả lời từ lephix. Bạn có một ví dụ làm việc này, của tooltips bootstrap được tạo ra và được hiển thị? Trước hết, lephix có "d3.tooltip()", nhưng tôi tin rằng đó là sai: nó cần phải là "bootstrap.tooltip()". Đây là một ngã ba của fiddle của bạn: http://jsfiddle.net/7bNgC/11/ Chắc chắn, tooltip là nhận được tạo ra, nhưng nó vẫn không nhìn thấy được. – mg1075

Trả lời

51

Vấn đề là các tooltip rằng Bootstrap v2.2.2 tạo là một <div> rằng đã nhận được chèn vào bên trong <svg>, khiến trình duyệt không render nó.

Tôi đã sử dụng phiên bản phát triển mới nhất của Bootstrap Tooltip, thêm một thông số mới để xác định vùng chứa của chú giải công cụ. Bây giờ tôi có thể làm:

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

EDIT - Một năm sau

Đối với hồ sơ, Anh đã đánh rơi những yêu cầu jQuery và bây giờ tôi đang sử dụng tuyệt vời d3-tip Justin Palmer.

+0

Rõ ràng là '$ (". My_circle ")', với dấu chấm. – krawyoti

+0

Tôi đang làm gì sai ở đây. ?? Nó dường như không hoạt động. http://jsfiddle.net/selvaG/eQmYX/39/ – selvagsz

+1

Tôi đã cập nhật jsfiddle của bạn - bạn có thể đính kèm vào tất cả các yếu tố vòng tròn svg bằng cách sử dụng $ ('svg circle'). tooltip ... http: // jsfiddle. net/eQmYX/41/ –

4

Sử dụng thư viện d3-bootstrap. Thư viện này sẽ cung cấp cho bạn các cảnh báo, popovers và chức năng tooltip tương thích với D3.js Bạn có thể thêm mã sau vào jsFiddle của mình.

Thêm phần này vào phần đầu của bạn.

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

Thêm mã này vào phần mã của bạn.

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

nó dường như không hoạt động, xem bình luận của mg1075 jsfiddle.net/7bNgC/11 – nachocab

+0

Không hoạt động trên các phần tử SVG – superphonic

Các vấn đề liên quan