Jeff, As of now, I realize I cannot use the use tags the way I thought I could, but I'm still curios. Either I'm missing something or I don't get what is going on. If I understand correctly, use = target.correspondingUseElement; should give me the use tag I clicked on. Which means use.getAttribute("id"); should return the id of the use tag. I get id is null. Should I be getting null or the id? Thanks.
Sean Jeff Rafter wrote: >Sean, > >It can be done, it just has to be done differently in each browser. Try >this code inside of your event: > > var target = evt.target; > var use = null > if (target == null) return; > if (target.correspondingUseElement) > use = target.correspondingUseElement; > >This is a sure way to get the <use> element from the target (in case it >is not correctly returned as an SVGElementInstance). The >correspondingElement property is not itself reliable (because of >inconsitent implementation interpretations). Once you have that you >should be able to access > > use.instanceRoot, use.animatedInstanceRoot (less reliable) > > From that you should get a reliable SVGElementInstance on which you can >use the correspondingElement property. Additionally you should be able >to use read only DOM properties. See > >http://www.w3.org/TR/SVG/struct.html#InterfaceSVGElementInstance > >Also, once you have the <use> element, you can simply follow the link >specified in the URI reference or simply lookup the referenced element >by the specified ID. > >Cheers, >Jeff Rafter > >Sean wrote: > > >>I can get the use tag, I want to be able to navigate the use tag. I >>have the use referencing a g tag with several elements under the g tag. >>I want to be able to navigate those elements. I'm coming to the >>conclusion that it can't be done. >> >>Sean >> >>Peter Kalev wrote: >> >> >> >>>Why don't you wrap the use element in a <g id="____">, search for the >>>"g" and then look for the <use> inside the "g"... Works fine for me... >>> >>>Peter Kalev >>>Senior Developer, >>>SWF, LLC >>> >>> >>>-----Original Message----- >>>From: Sean [mailto:[EMAIL PROTECTED] >>>Sent: Wednesday, February 08, 2006 11:21 AM >>>To: svg-developers@yahoogroups.com >>>Subject: Re: [svg-developers] Re: use tag and unique IDs >>> >>>I should say navigate the use element. I realize that it is read only, >>>but I can't figure out how to do that. Thanks. >>> >>>Sean wrote: >>> >>> >>> >>> >>> >>>>Does any one have examples of using SVGUseElement & SVGElementInstance? >>>> >>>> >>>> >>>> >>> >>> >>> >>> >>>>Thanks. >>>> >>>>Sean >>>> >>>>Sean wrote: >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>>>Hi Alastair, >>>>> >>>>>Thanks for the input. I figured as much with the id, but >>>>>getElementByName didn't work either. I was hoping that something >>>>> >>>>> >>>>> >>>>> >>>would >>> >>> >>> >>> >>>>>work. I tried the childNodes and firstChild, but nothing works. >>>>>objet.childNodes.length returns 0, which appears to mean that the >>>>> >>>>> >>>>> >>>>> >>>child >>> >>> >>> >>> >>>>>nodes under the use tag don't get recognized, rendering the approaches >>>>> >>>>> >>>>> >>>>> >>> >>> >>> >>> >>>>>below useless, no pun intended. My failure to get the use tags to >>>>> >>>>> >>>>> >>>>> >>>work >>> >>> >>> >>> >>>>>would mean the difference between using 35,000 tags and 210,000 tags. >>>>> >>>>> >>>>> >>>>> >>>I >>> >>> >>> >>> >>>>>have quite the incentive to make it work. Thanks. >>>>> >>>>>var objet=evt.target; >>>>>alert(objet.childNodes.length); >>>>> >>>>>var child = objet.firstChild; >>>>>i=0; >>>>>while(child != null){ >>>>>childSibling = child.nextSibling; >>>>>alert(child.nodeType); >>>>>child = childSibling; >>>>>} >>>>> >>>>>Sean >>>>> >>>>>Alastair Fettes wrote: >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>>You've made a fundamental mistake. >>>>>> >>>>>>1. The idea behind a defs section is to resuse (have multiple >>>>>> >>>>>> >>>>>> >>>>>> >>>copies) >>> >>> >>> >>> >>>>>>of an definition. >>>>>>2. The idea of an ID attribute is to only have one attribute with a >>>>>>specific value document wide (see xs:ID type - >>>>>><http://www.w3.org/TR/xmlschema-2/#ID>). >>>>>> >>>>>>So therefore you have a fundamental mistake. The defs section and >>>>>> >>>>>> >>>>>> >>>>>> >>>the >>> >>> >>> >>> >>>>>>id invalidate each other. >>>>>> >>>>>>The only thing you could (possibly) do would be to getElementById( >>>>>>"useFrame2" ).childNodes.foo.bar to get the tspan. Maybe, i don't >>>>>>guarantee it. >>>>>> >>>>>>Alastair >>>>>> >>>>>>--- In svg-developers@yahoogroups.com, Sean <[EMAIL PROTECTED]> wrote: >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>>I would like to use the use tags to save much text size as below. >>>>>>>Problem is grabbing and editing data with onclick events. The id >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>for my >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>>tspan would always be the same, but they would be used in different >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>use >>> >>> >>> >>> >>>>>>>tags with unique IDs. Is there a way to isolate say the tspan1 >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>under >>> >>> >>> >>> >>>>>>>useFrame2? >>>>>>> >>>>>>>SVG >>>>>>><defs> >>>>>>><g id="textFrame" cat="textBox"> >>>>>>><text cat="textBox" font-size="14" font="sans-serif" ><tspan >>>>>>>id="tspan1" cat="textBox">Text</tspan></text> >>>>>>><text><tspan visibility="hidden" id="tspan2"></tspan></text> >>>>>>></g> >>>>>>></defs> >>>>>>><use id="useFrame" onclick="edit2(evt);" xlink:href="#textFrame" >>>>>>>transform="translate(10,25)"/> >>>>>>><use id="useFrame2" onclick="edit2(evt);" xlink:href="#textFrame" >>>>>>>transform="translate(10,50)"/> >>>>>>> >>>>>>>JS >>>>>>>function edit2(evt){ >>>>>>>var objet=evt.target; >>>>>>>var tspan1 = objet.getElementById("tspan1"); //Doesn't work >>>>>>>} >>>>>>> >>>>>>>Thanks! >>>>>>> >>>>>>>Sean >>>>>>> >>>>>>>-- >>>>>>>"I'd rather have a bottle in front of me, than a frontal lobotomy." >>>>>>>-- Tom Waits >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>----- >>>>>>To unsubscribe send a message to: >>>>>> >>>>>> >>>>>> >>>>>> >>>[EMAIL PROTECTED] >>> >>> >>> >>> >>>>>>-or- >>>>>>visit http://groups.yahoo.com/group/svg-developers and click "edit my >>>>>> >>>>>> >>>>>> >>>>>> >>>membership" >>> >>> >>> >>> >>>>>>---- >>>>>>Yahoo! Groups Links >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>>> >>> >>> >>> >>> > > >----- >To unsubscribe send a message to: [EMAIL PROTECTED] >-or- >visit http://groups.yahoo.com/group/svg-developers and click "edit my >membership" >---- >Yahoo! Groups Links > > > > > > > > > > -- "I'd rather have a bottle in front of me, than a frontal lobotomy." -- Tom Waits ----- To unsubscribe send a message to: [EMAIL PROTECTED] -or- visit http://groups.yahoo.com/group/svg-developers and click "edit my membership" ---- Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/svg-developers/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/