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/
 


Reply via email to