2013-07-11 10 views
27

Próbuję dołączyć element html div do svg, który próbuję utworzyć wykres. Próbuję go dołączyć za pomocą poniższego kodu, ale kiedy sprawdzam element za pomocą firebuga ... div jest wyświetlany wewnątrz "rect" kodu elementu, ale nie pojawia się w interfejsie graficznym. czy jest to coś pomieszanego z metodą, którą próbuję, czy też nie można się do niej przyczepić, aby dołączyć div wewnątrz svg?jest możliwe dołączenie elementu div wewnątrz elementu svg.

 marker.append("rect").attr("width", "50px").attr("height", "50px").append("div").attr("id", function (d) { 
      return "canvas_" + d.key.split(" ").join("_"); 
     }).style("width", "50px").style("height", "50px"); 

Odpowiedz

42

Nie można dołączyć HTML do formatu SVG (technicznie można z foreignObject, ale jest to dziura królika). Ponadto widoczne elementy w SVG nie mogą być zagnieżdżone, więc elementy takie jak circle, rect, path i takie nie mogą mieć elementów podrzędnych.

+1

Dzięki za polecenie obiektu obcego !! zadziałało – sam

+3

Należy pamiętać, że 'foreignObject' nie działa w IE, jeśli potrzebujesz kompatybilności z przeglądarką. – Duopixel

+0

@sam Proszę rozważyć zaakceptowanie tej odpowiedzi, jeśli rozwiąże ona problem. Znam specyfikację i mogę zweryfikować, czy jest poprawna. –

4

Próbujesz dołączyć "rect", a także "div" w tej samej linii. Porbably że jest tam, gdzie zawodzą Sprawdź te tutotials dla D3 ... Jego niesamowite biblioteki oparte na SVG http://alignedleft.com/tutorials/d3/drawing-svgs/

+0

to nie działa z naszym rect albo .. Właśnie dodałem rect coz Chciałem wiedzieć czy append był wrking – sam

+3

Sprawdź te tutoriale. Mogę obiecać, że nauczysz się dużo więcej niż tylko SVG ... – AnaMaria

+0

Pewnie ... dzięki !!! – sam

13

Chciałbym również rozważyć użycie elementu <g>, ponieważ służy on do podobnego celu jak <div> przez grupowanie obiektów. More about it here.

+1

Absolutnie w porządku. tag g jest lepszy. Dzięki za informację. – swapyonubuntu

Powiązane problemy