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: [email protected]
>>>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 [email protected], 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/