I believe setTimeouts work outside the scope of the function they are called from. Test your way but I don't think it'll work.
On Jul 2, 8:12 pm, "Erik Beeson" <[EMAIL PROTECTED]> wrote: > Ick! Global variables and eval'd code! How about (untested, logic should be > unchanged): > > $(function() { > $(':text').bind('focus', function() { > var o = this; > if(o.setSelectionRange) { /* DOM */ > setTimeout(function() > {o.setSelectionRange(o.value.length,o.value.length);}, 2); > } else if(o.createTextRange) { /* IE */ > var r = o.createTextRange(); > r.moveStart('character', o.value.length); > r.select(); > } > }); > > }); > > Adds an anonymous function, which adds a function call, but saves an eval > and doesn't require a global variable, which is potentially problematic. > > --Erik > > On 7/2/08, Brian J. Fink <[EMAIL PROTECTED]> wrote: > > > > > And I checked my code again. It DOES work on FF3, FF2, and IE7. > > > On Jul 2, 5:37 pm, Paul Malan <[EMAIL PROTECTED]> wrote: > > > Thanks for the code. It doesn't work for me--still when I tab into a > > > textbox in either IE7 or FF3 the content is selected and the cursor > > > isn't positioned at the end of the text, even when I pull out > > > everything but this function and two textboxes to test. > > > > I think I may just give up--it was a minor detail and not requested by > > > the users. Bugs me, though. Seems like it shouldn't be so tricksy... > > > > On Jul 2, 3:12 pm, "Brian J. Fink" <[EMAIL PROTECTED]> wrote: > > > > > There may be a jQuery way to do this, but I don't know what it is. > > > > > However, I do know 2 ways to accomplish this: one DOM way, one IE way. > > > > Both methods must be employed. > > > > > $(function() { > > > > $('input[type="text"]').bind('focus',function() { > > > > window.o=this; > > > > if (o.setSelectionRange) /* DOM */ > > > > setTimeout('o.setSelectionRange(o.value.length,o.value.length)',2); > > > > else if (o.createTextRange) /* IE */ > > > > { > > > > var r=o.createTextRange(); > > > > r.moveStart('character',o.value.length); > > > > r.select(); > > > > } > > > > }); > > > > > }); > > > > > On Jul 2, 2:55 pm, Paul Malan <[EMAIL PROTECTED]> wrote: > > > > > > By default it seems browsers select all the text in a textbox when it > > > > > gains focus by way of a tab-press. I would like the cursor to be > > > > > positioned at the end of any existing text in the input, > > instead. The > > > > > examples I'm turning up on Google don't work and seem needlessly > > > > > complex, and since jQuery simplifies everything else I used to hate > > > > > about Javascript, I thought I'd see if there's a simple way to > > > > > position the cursor in a text input box on focus. Is it doable? > > > > > > Thanks...