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/CAMZCrPj-i22Wrtjx%3D%3Dt2U%3DBrs%3DRHH2n7%3DFyaiZ7uygP4_RZ-ZQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
