For IDs, getElementById() is still faster:
http://jsperf.com/getelementbyid-vs-queryselector
On Sat Jan 17 2015 at 6:51:14 AM Max <[email protected]> wrote:

> I'm curious why people always use querySelector() instead of
> getElementById() - presumably the latter has lower cost, or is it now
> negligible?
>
> Max.
> On Sat Jan 17 2015 at 21:57:20 Eric Bidelman <[email protected]> wrote:
>
>> You can do:
>>
>> editableChanged: function(oldValue, newValue) {
>>   if (this.editable) {
>>     this.async(function() {
>>       this.$.container.querySelector('#my_input').focus();
>>     });
>>   }
>> }
>>
>> this.async() waits one rAF frame. By that time, the template has stamped
>> the DOM.
>>
>> BTW, you can use this.async(function() {}, null, 1000) instead of
>> setTimeout. async() binds `this` instead, so no need to .bind(this) either
>> :)
>>
>>
>> On Sat Jan 17 2015 at 4:04:17 AM alessandro meyer <
>> [email protected]> wrote:
>>
>>> Let's see what their take on this is. Thanks for helping out!
>>>
>>>
>>> On Saturday, January 17, 2015 at 12:40:25 PM UTC+1, David Waterman wrote:
>>>
>>>> That's an interesting question - I'm afraid I don't know the
>>>> answer...but now there's an example for the other more learned people on
>>>> this list to look at :)
>>>>
>>>> IINM, most of them are in the US, and it's a little early for them.
>>>>
>>>> Max.
>>>>
>>>> On Sat Jan 17 2015 at 19:35:49 alessandro meyer <[email protected]>
>>>> wrote:
>>>>
>>> That looks pretty much like my example.  I can see your approach but do
>>>>> I have a guarantee that template if is being updated first, so that I 
>>>>> could
>>>>> access it in the editableChanged callback?
>>>>>
>>>>> Alessandro
>>>>>
>>>>> On Saturday, January 17, 2015 at 12:28:24 PM UTC+1, David Waterman
>>>>> wrote:
>>>>>
>>>>>> Ok, so this is about the timing of the template being invoked and
>>>>>> when you're checking? Where are you checking? I would be checking inside 
>>>>>> an
>>>>>> 'editableChanged' function, though I don't know if that would work 
>>>>>> either,
>>>>>> tbh.
>>>>>>
>>>>>> Any chance of a jsbin or something?
>>>>>>
>>>>>> I tried this to see :
>>>>>>
>>>>>> <http://jsbin.com/layenupohu/1/edit?html,output>
>>>>>>
>>>>>> Let me know if there's something I'm not understanding correctly.
>>>>>>
>>>>>> Max.
>>>>>>
>>>>>> On Sat Jan 17 2015 at 18:54:16 alessandro meyer <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>> Hey Max
>>>>>>>
>>>>>>> Thanks for answering.
>>>>>>>
>>>>>>> I tried accessing it also through the templates ID but the doesnt
>>>>>>> work either because the input element is simply not present. Thats why I
>>>>>>> started using using setTimeout (see my second entry) which allows it to 
>>>>>>> be
>>>>>>> added to the DOM meanwhile but it really feels hackish. I am looking 
>>>>>>> for a
>>>>>>> on-load like callback on input-field.
>>>>>>>
>>>>>>> Alessandro
>>>>>>>
>>>>>>>
>>>>>>> On Saturday, January 17, 2015 at 11:46:02 AM UTC+1, David Waterman
>>>>>>> wrote:
>>>>>>>
>>>>>>>> How are you trying to access it? Can't you put a container around
>>>>>>>> it and use this.$.container.getElementById('editor'); ? As you
>>>>>>>> say, the element doesn't exist, so you can't use polymer's nice '$' to
>>>>>>>> access it...iinm. Perhaps you don't need the container, and can use the
>>>>>>>> template's ID?
>>>>>>>>
>>>>>>>> Max.
>>>>>>>>
>>>>>>>> On Sat Jan 17 2015 at 18:34:15 alessandro meyer <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>> Hey there
>>>>>>>>>
>>>>>>>>> I have the following situation
>>>>>>>>>
>>>>>>>>>     <template id="edit" bind if="{{ editable }}">
>>>>>>>>>       <input id="editor" on-keyup="{{exit}}" value={{value}} />
>>>>>>>>>     </template>
>>>>>>>>>
>>>>>>>>> And on editable being set to true, id like to focus() the input
>>>>>>>>> field how do I do that? Because the stuff in the template doesn't 
>>>>>>>>> seem to
>>>>>>>>> be accessible earlier as I can't reach the <input> until it is 
>>>>>>>>> visible.
>>>>>>>>>
>>>>>>>>> Thanks!
>>>>>>>>>
>>>>>>>>> Cheers
>>>>>>>>> Alessandro
>>>>>>>>>
>>>>>>>>> Follow Polymer on Google+: plus.google.com/107187849809354688692
>>>>>>>>> ---
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "Polymer" group.
>>>>>>>>>
>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to [email protected].
>>>>>>>>
>>>>>>>>
>>>>>>>>> To view this discussion on the web visit
>>>>>>>>> https://groups.google.com/d/msgid/polymer-dev/a7654552-68be-
>>>>>>>>> 4dd9-9e20-a0ff1b0c05ab%40googlegroups.com
>>>>>>>>> <https://groups.google.com/d/msgid/polymer-dev/a7654552-68be-4dd9-9e20-a0ff1b0c05ab%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>>  Follow Polymer on Google+: plus.google.com/107187849809354688692
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "Polymer" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>>
>>>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>>>>> msgid/polymer-dev/20fae5bc-3623-4151-93de-914609afd53c%40googl
>>>>>>> egroups.com
>>>>>>> <https://groups.google.com/d/msgid/polymer-dev/20fae5bc-3623-4151-93de-914609afd53c%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>  Follow Polymer on Google+: plus.google.com/107187849809354688692
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Polymer" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>>
>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>>> msgid/polymer-dev/3e059aea-9cf8-4ee9-97fd-9700b88e016a%
>>>>> 40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/polymer-dev/3e059aea-9cf8-4ee9-97fd-9700b88e016a%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>  Follow Polymer on Google+: plus.google.com/107187849809354688692
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Polymer" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/polymer-dev/12b24b53-fe1a-4cf8-9bbd-c0bd90f9e569%40googlegroups.com
>>> <https://groups.google.com/d/msgid/polymer-dev/12b24b53-fe1a-4cf8-9bbd-c0bd90f9e569%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>  Follow Polymer on Google+: plus.google.com/107187849809354688692
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Polymer" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>>
> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/polymer-dev/CACGqRCADt7b1VRDK3WEqhLKR1MGmG0o4cEPKRzXZgjzdXyHgwQ%40mail.gmail.com
>> <https://groups.google.com/d/msgid/polymer-dev/CACGqRCADt7b1VRDK3WEqhLKR1MGmG0o4cEPKRzXZgjzdXyHgwQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>
>
>> For more options, visit https://groups.google.com/d/optout.
>>
>

Follow Polymer on Google+: plus.google.com/107187849809354688692
--- 
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/CACGqRCC4YsRRitxRX6J-v8BCsbEqgZ5RyZtkmwSMK1tWWX3mxg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to